/* ===================================
* Joystick
*
* by computerarchiv-muenchen.de
*
* http://demo09.makercafe-muenchen.de
* ===================================
*/
#define SERVO_X 11 // PWM-Pin für Servo X
#define SERVO_Y 10 // PWM-Pin für Servo Y
#define JOYSTICK_X A0 // Pin für Joystick-X-Achse
#define JOYSTICK_Y A1 // Pin für Joystick-Y-Achse
#include <LiquidCrystal_I2C.h> // Funktionsbibliothek für I2C-LCD-Anzeige einbinden
LiquidCrystal_I2C LCD( 0x27, 16, 2 ); // LCD-Objekt aus Funktionsbibliothek für I2C-LCD-Anzeige erstellen
#include <Servo.h> // Funktionsbibliothek für Servo einbinden
Servo meinServoX; // erstes Servo-Objekt aus Funktionsbibliothek für Servo erstellen
Servo meinServoY; // zweites Servo-Objekt aus Funktionsbibliothek für Servo erstellen
void setup() {
LCD.init(); // LCD initialisieren
LCD.backlight(); // Hintergrundbeleuchtung an
LCD.print( "Hallo Welt !" ); // Text auf LCD ausgeben
meinServoX.attach( SERVO_X ); // ersten Servo initialisieren
meinServoY.attach( SERVO_Y ); // zweiten Servo initialisieren
}
void loop() {
int joystickX = analogRead( JOYSTICK_X ); // Potentiometer-Wert für X-Wert auslesen
int winkelX = map( joystickX, 0, 1023, 0, 180 ); // Servo-Position für ersten Servo aus X-Wert berechnen
meinServoX.write( winkelX ); // ersten Servo in Servo-Position bringen
LCD.setCursor( 0, 1 ); // Text-Position bestimmen
LCD.print( "X: " ); // Text ausgeben
LCD.print( winkelX ); // X-Wert ausgeben
LCD.print( " " ); // alte, vorhandene Ziffern mit Leerzeichen überschreiben
int joystickY = analogRead( JOYSTICK_Y ); // Potentiometer-Wert für Y-Wert auslesen
int winkelY = map( joystickY, 0, 1023, 0, 180 ); // Servo-Position für zweiten Servo aus Y-Wert berechnen
meinServoY.write( winkelY ); // zweiten Servo in Servo-Position bringen
LCD.setCursor( 9, 1 ); // Text-Position bestimmen
LCD.print( "Y: " ); // Text ausgeben
LCD.print( winkelY ); // Y-Wert ausgeben
LCD.print( " " ); // alte, vorhandene Ziffern mit Leerzeichen überschreiben
}