Kalibrera en joystick potentiometer (2 / 2 steg)
Steg 2: Steg 2: Arduino koder
Här är koderna för att kalibrera denna typ av potentiometer.
/*
Datum:---22 December 2015
Titel:---JOYSTICK POTENTIOMETER kalibrering
Författare:---Av Firas Helou---
Lär dig hur du kalibrerar en joystick potentiometer med Arduino Uno
*/
int defaultData; Ställa in en variabel för potentiometer standarddata för start
int data. Variabel för att lagra data läsa på analoga Arduino stift A0 kommer från potentiometern
int startTime = 0; Tid variabel datatyp definieras som heltal eftersom vi inte behöver mer än 10 //microseconds
int TimeGap = 10; Definiera lucka
int mappa; Mappa om variabeln för att lagra remaped data kommer från den analoga Arduino pin A0
VOID SETUP() FUNKTION
void setup() {
Fastställande av seriell kommunikation med standard kurs
Serial.BEGIN(9600);
Vi satt tid att definiera standardvärdet läsa på det analoga Arduino stiftet A0, eftersom vi har en centrerad joystick pin, //so sitt standardvärde är annorlunda än 0
om (micros() - startTime > = TimeGap) {
Potentiometer kopplad till analoga Arduino
defaultData = analogRead(A0);
}
}
VOID LOOP() FUNKTION
void loop() {
Vi anger datavärde ett Läs på det analoga Arduino stiftet A0
data = analogRead(A0); I det här fallet är standardvärdet läsa på start 488
om (data < defaultData + 1) {
Vi måste lägga om datavärdet läsa på analoga Arduino stift A0 till ett mindre värde mellan 0 och 255
men vi måste dra ifrån 1 från standardvärdet, eftersom om vi inte, vi har standardvärdet 0 när den //stick ståndpunkten är centrerad
i stället har vi en flytande värde mellan 1 och 0
så för att undvika att flytande problem subtrahera vi helt enkelt - 1
mappa om = karta (data, 0, defaultData - 1, 255, 0);
} else om (data > = defaultData) {
I denna del behöver vi inte ta ifrån något
mappa om = karta (data, defaultData, 1023, 0, 255);
}
Följetong skriva ut de värden vi får
Serial.Print ("konfigurationsutrymmet värde:");
Serial.println(REMAP);
Serial.Print ("standardvärde:");
Serial.println(defaultData);
Delay(200);
}
Låt oss säga att jag valde y-axeln, genom att ladda upp koden och öppna den seriella monitorn, vi måste se ett standardvärde på 488 i mitt fall (du kan få ett annat värde). Detta är den sysslolösa centrerade positionen för stick så vi måste kalibrera den för att se värdet 0 i stället för 488 som en start. Och det är här denna skiss kommer på plats. Bilden ovan visar resultaten som jag fått efter att jag laddat upp den sista skissen ovan.
Detta är min första instructable handledning. Jag hoppas att detta skulle hjälpa dig på något sätt. Känn dig fri att lägga till dina frågor i kommentarerna om du har någon eller om du har ett bättre sätt att kodifiera det skulle vara trevligt att kolla upp, det som skulle hjälpa mig att förbättra mig. Om du hitta områden där förbättringar kan ske i detta vänligen lägga till den i kommentarerna eller skicka mig ett privat meddelande. Det kommer att vara till hjälp för andra samma som för mig.