AlphaBot: Joystick einlesen: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
|||
| Zeile 73: | Zeile 73: | ||
</div> | </div> | ||
== Hausaufgaben bis zum | == Hausaufgaben bis zum 9. Termin == | ||
* | * Steuert den US-Servo mit dem Joystick im Bereich 0°-180° an. | ||
* | * LINKS: Drehung nach Links (0°). | ||
* | * RECHTS: Drehung nach Rechts (180°). | ||
* EINGABE: Grehung auf die Mitte (90°). | |||
== Musterlösung == | == Musterlösung == | ||
Version vom 8. Mai 2022, 07:50 Uhr
Autor: Prof. Dr.-Ing. Schneider
Inhalt des 8. Termins
- Wir lese den Joystick ein.
- Wir entprellen die Joystick-Eingabe.
- Wir geben den Werte im sereiellen Monitor aus.
Quelltext
/* Deklaration der Joystick Ports in Fahrtrichtung */
#define JOYSTICK_RECHTS A1
#define JOYSTICK_UNTEN A2
#define JOYSTICK_OBEN A3
#define JOYSTICK_EINGABE A4
#define JOYSTICK_LINKS A5
boolean JoystickFreigabe_bit = 1; /* Entprellen des Joysticks */
void setup(void) /* Einmalig ausgeführt */
{
/* Der Joystick wird initialisiert */
pinMode(JOYSTICK_OBEN, INPUT);
digitalWrite(JOYSTICK_OBEN, HIGH);
pinMode(JOYSTICK_UNTEN, INPUT);
digitalWrite(JOYSTICK_UNTEN, HIGH);
pinMode(JOYSTICK_LINKS, INPUT);
digitalWrite(JOYSTICK_LINKS, HIGH);
pinMode(JOYSTICK_RECHTS, INPUT);
digitalWrite(JOYSTICK_RECHTS, HIGH);
pinMode(JOYSTICK_EINGABE, INPUT);
digitalWrite(JOYSTICK_EINGABE, HIGH);
Serial.begin(9600); // Start des Seriellen Monitors mit 9600 Baude
}
void loop(void) /* Zyklische Abfrage */
{
/* Abfrage des Joysticks */
delay(1);
if((digitalRead(JOYSTICK_OBEN) == LOW) || (digitalRead(JOYSTICK_UNTEN) == LOW) || (digitalRead(JOYSTICK_LINKS) == LOW) || (digitalRead(JOYSTICK_RECHTS) == LOW) || (digitalRead(JOYSTICK_EINGABE) == LOW))
{
if(JoystickFreigabe_bit == true)
{
delay(10); //10 ms warten - Taster entprellen
if((digitalRead(JOYSTICK_OBEN) == LOW) || (digitalRead(JOYSTICK_UNTEN) == LOW) || (digitalRead(JOYSTICK_LINKS) == LOW) || (digitalRead(JOYSTICK_RECHTS) == LOW) || (digitalRead(JOYSTICK_EINGABE) == LOW))
{
JoystickFreigabe_bit = false;
if(digitalRead(JOYSTICK_OBEN) == LOW){
Serial.println("Joystick: OBEN gedrückt");
}
else if(digitalRead(JOYSTICK_UNTEN) == LOW){
Serial.println("Joystick: UNTEN gedrückt");
}
else if(digitalRead(JOYSTICK_LINKS) == LOW){
Serial.println("Joystick: LINKS gedrückt");
}
else if(digitalRead(JOYSTICK_RECHTS) == LOW){
Serial.println("Joystick: RECHTS gedrückt");
}
else if(digitalRead(JOYSTICK_EINGABE) == LOW){
Serial.println("Joystick: EINGABE gedrückt");
}
}
}
}
else {
JoystickFreigabe_bit = true; // Taster wieder freigeben
}
}
Hausaufgaben bis zum 9. Termin
- Steuert den US-Servo mit dem Joystick im Bereich 0°-180° an.
- LINKS: Drehung nach Links (0°).
- RECHTS: Drehung nach Rechts (180°).
- EINGABE: Grehung auf die Mitte (90°).
Musterlösung
→ zurück zum Hauptartikel: Projekt Alf