Joystick kontrollerade kamera (3 / 4 steg)
Steg 3: kod
KODEN
#include < Servo.h >
#include < LiquidCrystal.h >
LiquidCrystal lcd(12,11,5,4,3,2);
CONST int servo1 = 9; första servo
CONST int servo2 = 8; andra servo
CONST int joyH = 0; L/R Parallax styrspak
CONST int joyV = 1; U/D Parallax styrspak
int servoVal; variabel att läsa värdet från det analoga stiftet
Servo myservo1; skapa objekt för att styra en servo servo
Servo myservo2; skapa objekt för att styra en servo servo
CONST int button2Pin = 1; numrera av tryckknapp PIN-koden
CONST int ledPin = 7. antal LED stift
Variabler
int ledState = låg; det aktuella läget för utgångsstiftet
int lastButtonState = låg; den föregående behandlingen från ingångsstiftet
void setup() {
Servo
myservo1.attach(servo1); fäster servo
myservo2.attach(servo2); fäster servo
LCD.BEGIN (20, 4);
LCD.Clear();
pinMode (button2Pin, ingång);
pinMode (ledPin, produktionen);
Inizialize följetong
Serial.BEGIN(9600);
}
void loop()
{
{
Läs statligt av växeln till en lokal variabel:
int läsa = digitalRead(button2Pin);
om (lastButtonState == låg & & läser == hög)
{
om (ledState == hög) {ledState = låg;}
annat {ledState = hög;}
digitalWrite (ledPin, ledState);}
lastButtonState = behandlingen.
}
lcd.setCursor (0, 0); {
LCD.Print ("---Mark Wapenaar---");
} lcd.setCursor (0, 1); {
LCD.Print ("Arduino Uno Project");
}
lcd.setCursor (0, 2);
IF(analogRead(0) == 511) {
LCD.Print ("kamera stoppad");
} annat if(analogRead(0) < 509) {
LCD.Print ("kameran ned");
} annat if(analogRead(0) > 513) {
LCD.Print ("kamera upp");
}
lcd.setCursor (0, 3);
IF(analogRead(1) == 511) {
LCD.Print ("kamera stoppad");
} annat if(analogRead(1) < 509) {
LCD.Print ("kamera vänster");
} annat if(analogRead(1) > 513) {
LCD.Print ("kameran rätt").
}
Joystick visningsvärden använda följetong monitor
outputJoystick();
Läsa värdet horisontella joystick (värde mellan 0 och 1023)
{
servoVal = analogRead(joyH);
servoVal = karta (servoVal, 0, 1021, 0, 180);} skala den att använda den med servo (resultat mellan 0 och 180)
{
myservo2.write(servoVal); anger servo skalad värde
}
Delay(15);
Läsa värdet horisontella joystick (värde mellan 0 och 1023)
{
servoVal = analogRead(joyV);}
servoVal = karta (servoVal, 0, 1021, 50, 180); skala den att använda den med servo (resultat mellan 70 och 180)
{
myservo1.write(servoVal); anger servo skalad värde
}
Delay(15); väntar på servo att komma dit
}
/**
* Visa joystick värden
*/
void outputJoystick() {
Serial.Print(analogRead(joyH));
Serial.Print ("---");
Serial.Print(analogRead(joyV));
Serial.println ("---");
}