AlphaBot: Verzweigung: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Zeile 14: | Zeile 14: | ||
<div style="width:1200px; height:300px; overflow:auto; border: 2px solid #088"> | <div style="width:1200px; height:300px; overflow:auto; border: 2px solid #088"> | ||
<pre> | <pre> | ||
/* | /* Bibliothek einbinden */ | ||
#include <Servo.h> | #include <Servo.h> | ||
Servo | Servo usServo; /* Erzeugt ein Servo Objekt, um den Servo des Ultraschall anzusteuern */ | ||
int | int AnalogPin_s16 = 0; /* An Analogpin A0 ist das Poti angeschlossen */ | ||
int | int PotiWert_s16 = 0; /* Variable für die Stellung des Potis 0..676 */ | ||
int ServoStellung_s16 = 0; /* Variable für die Stellung des Servos 0°..180° */ | |||
void setup() { | void setup() { /* Einmalige Systeminitialisierung */ | ||
usServo.attach(9); /* Verbindung der Servo mit einem Digitalpin */ | |||
Serial.begin(9600); | Serial.begin(9600); /* Init für serielle Ausgabe */ | ||
} | } | ||
void loop() { | void loop() { /* Main Schleife */ | ||
PotiWert_s16 = analogRead(AnalogPin_s16); /* Potistellung wird ausgelesen */ | |||
Serial.println( | Serial.println(PotiWert_s16); | ||
ServoStellung_s16 = map(PotiWert_s16, 0, 676, 0, 180); /* Die Stellung des Potis wird auf 0°..180° skapiert */ | |||
usServo.write(ServoStellung_s16); /* Der Servo soll sich an die Position drehen */ | |||
delay(15); /* Wir warten 15ms, bis der Servo seine Position erreich hat */ | |||
/ | |||
// | |||
delay( | |||
} | } | ||
</pre> | </pre> | ||
</div> | </div> |
Version vom 7. April 2022, 14:27 Uhr
Autor: Prof. Dr.-Ing. Schneider
Inhalt des vierten Termins
- Wir haben die Motoransteuerung geändert, so dass Alf ein Dreieck gefahren ist.
- Wir haben uns die Inkrementalgeber angeschaut und die Werte mit dem Demo
E13_Photo_Interrupter_Sensor
angezeigt. - Anschließend haben wir die Umdrehungen gezählt (
E14_Wheel_Encoders
). - Wir haben den Radumfang berechnet: .
- Fazit: Drehen beider Räder um 360 °, dann fährt der Roboter 20,1 cm vorwärts.
Quelltext
E24_Servo_Knop
/* Bibliothek einbinden */ #include <Servo.h> Servo usServo; /* Erzeugt ein Servo Objekt, um den Servo des Ultraschall anzusteuern */ int AnalogPin_s16 = 0; /* An Analogpin A0 ist das Poti angeschlossen */ int PotiWert_s16 = 0; /* Variable für die Stellung des Potis 0..676 */ int ServoStellung_s16 = 0; /* Variable für die Stellung des Servos 0°..180° */ void setup() { /* Einmalige Systeminitialisierung */ usServo.attach(9); /* Verbindung der Servo mit einem Digitalpin */ Serial.begin(9600); /* Init für serielle Ausgabe */ } void loop() { /* Main Schleife */ PotiWert_s16 = analogRead(AnalogPin_s16); /* Potistellung wird ausgelesen */ Serial.println(PotiWert_s16); ServoStellung_s16 = map(PotiWert_s16, 0, 676, 0, 180); /* Die Stellung des Potis wird auf 0°..180° skapiert */ usServo.write(ServoStellung_s16); /* Der Servo soll sich an die Position drehen */ delay(15); /* Wir warten 15ms, bis der Servo seine Position erreich hat */ }
-->
Hausaufgaben bis zum 4. Termin
Schaut Euch die Ansteuerung Eures Servos noch einmal an. Könnt Ihr den Ultraschall von ganz links bis ganz rechts drehen?
Musterlösung
→ zurück zum Hauptartikel: Projekt Alf