Stap 2: Stap 2: Arduino Codes
Hier zijn de codes voor het kalibreren van dit soort potentiometer.
/*
Datum:---, 22 December 2015
Titel:---JOYSTICK POTENTIOMETER kalibratie
Auteur:---Door Firas Helou---
Leer hoe te kalibreren van een joystick potentiometer met Arduino Uno
*/
int defaultData; Instellen van een variabele voor potentiometer standaardgegevens op start
int de gegevens; Variabele gegevens op te slaan lees op analoge Arduino pin A0 vanuit de potentiometer
int startTime = 0; Tijd variabele gegevenstype wordt gedefinieerd als integer omdat we niet meer dan 10 //microseconds hoeven
int TimeGap = 10; Definiëren van het tijdsverschil
int remap; Remap variabele voor het opslaan van de gegevens van de remaped vanuit de analoge pin van de Arduino A0
VOID SETUP FUNCTIE
VOID Setup {}
Vaststelling van seriële communicatie op standaardtarief
Serial.begin(9600);
Wij Stel tijd om te definiëren van de standaardwaarde lezen op de analoge pin van de Arduino A0, want we een gecentreerde joystick-pin hebben, //so van de standaardwaarde is anders dan 0
Als (micros() - startTime > = TimeGap) {}
Potentiometer aangesloten op analoge Arduino
defaultData = analogRead(A0);
}
}
VOID LOOP FUNCTIE
void loop {}
Wij stel gegevenswaarde één gelezen op de analoge pin van de Arduino A0
gegevens = analogRead(A0); In dit geval is de standaardwaarde lezen op begin 488
Als (gegevens < defaultData + 1) {}
We moeten de gegevenswaarde lezen over analoge Arduino pin A0 op een kleinere waarde tussen 0 en 255 remap
maar we moeten aftrekken 1 de standaardwaarde, want als we niet, we zullen niet een standaardwaarde van 0 wanneer de //stick positie is gecentreerd
in plaats daarvan zal er een zwevende waarde tussen 1 en 0
dus Voorkom dat zwevende probleem aftrekken we gewoon - 1
remap = kaart (gegevens, 0, defaultData - 1, 255, 0);
} else if (gegevens > = defaultData) {}
In dit deel hoeven we niet om het even wat u wilt aftrekken
remap = kaart (data, defaultData, 1023, 0, 255);
}
Seriële afdrukken van de waarden die we ontvangen
Serial.Print ("Remapped waarde:");
Serial.println(remap);
Serial.Print ("standaardwaarde:");
Serial.println(defaultData);
delay(200);
}
Laten we zeggen dat ik koos voor de y-as, door het uploaden van de code en de seriële monitor openen, zien we een standaardwaarde van 488 in mijn geval (mogelijk krijgt u een andere waarde). Dit is de inactieve gecentreerd positie voor de stick zodat we om te zien de waarde van een 0 in plaats van 488 als een begin moet kalibreren. En dit is waar deze schets komen in de plaats. De afbeelding hierboven toont de resultaten welke i ontvangen nadat ik de bovenstaande laatste schets geüpload.
Dit is mijn eerste instructable tutorial. Ik hoop dat dit zou helpen u een of andere manier. Voel je vrij om toe te voegen uw vragen in het commentaar gedeelte als u heb om het even welk of hebt u een betere manier van coderen het zou leuk zijn om te controleren het uit, die me mezelf te verbeteren zou helpen. Als u gebieden waar verbeteringen in dit plaatsvinden kunnen vinden gelieve toe te voegen in de commentaren of stuur me een prive bericht. Het zal nuttig zijn voor anderen dezelfde wat mij betreft.