Modellbahnsteuerung mit Arduino
2015-01-03 von Mario
Mit der Arduino-Plattform ist es sehr einfach, Hardware anzusteuern. Auf der Modellbahnanlage von E. Wolf wird ein Bagger, ein Kran und eine Raupe über jeweils einen Servo angesteuert. Damit der Ablauf nicht immer gleich ist, wird noch etwas „Zufall“ integriert.
Hier gibt es den Quellcode für diese Umsetzung.
#include <Servo.h>
struct fahrzeug {
int degree;
int ms;
int pin;
Servo servo;
};
fahrzeug fahrzeug_list[3];
void setup(){
// declare Fahrzeuge
struct fahrzeug raupe1;
struct fahrzeug bagger1;
struct fahrzeug kran1;
// define Raupe
raupe1.pin = 10;
raupe1.degree = 160;
raupe1.ms = 88;
// define Bagger
bagger1.pin = 9;
bagger1.degree = 180;
bagger1.ms = 75;
// define Kran
kran1.pin = 11;
kran1.degree = 180;
kran1.ms = 20;
// add Fahrzeuge to list
fahrzeug_list[0] = raupe1;
fahrzeug_list[1] = bagger1;
fahrzeug_list[2] = kran1;
}
void loop(){
long rnd = random(0,3); // random(min,max-1)
rotate_fahrzeug(fahrzeug_list[rnd]);
}
void rotate_fahrzeug(struct fahrzeug &fzg){
int pos = 0;
// attach servo to pin
fzg.servo.attach(fzg.pin);
for(pos=0;pos<=fzg.degree;pos+=1){
fzg.servo.write(pos);
delay(fzg.ms);
}
for(pos=fzg.degree;pos>=0;pos-=1){
fzg.servo.write(pos);
delay(fzg.ms);
}
// set servo to start position
fzg.servo.write(90);
// detach servo
fzg.servo.detach();
}
Kategorie: Modellbahn Schlagwörter: Arduino, C, Servo
