Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <IRremote.h>
- #define M1 7
- #define M2 8
- #define M3 9
- #define M4 2
- #define M5 4
- #define M6 3
- int RECV_PIN = 12;
- int command = 4;
- const int DEFAULT_VAL = 80;
- const int STOP_VAL = 0;
- IRrecv irrecv(RECV_PIN); //Objekt initialisieren für die IR Übertragung
- decode_results results;
- void setup(){
- irrecv.enableIRIn(); // Start the receiver
- Serial.begin(9600); //Serielle kommunikation mit 9600 Baud beginnen.
- //output für die Motoren des Antriebs
- pinMode(7, OUTPUT);
- pinMode(8, OUTPUT);
- pinMode(9, OUTPUT);
- pinMode(2, OUTPUT);
- pinMode(4, OUTPUT);
- pinMode(3, OUTPUT);
- //input für die Fernbedienung
- pinMode(RECV_PIN, INPUT);
- }
- void loop() {
- command = readCommand();
- //vorwärts fahren
- if (command == 0){
- Serial.println("vorwärts fahren");
- moveVehicle(HIGH, LOW, LOW, HIGH);
- }
- //rückwärts fahren
- if (command == 1){
- Serial.println("rückwärts fahren");
- moveVehicle(LOW, HIGH, HIGH, LOW);
- }
- //rechts fahren
- if (command == 2){
- Serial.println("rechts fahren");
- moveVehicle(LOW, HIGH, LOW, HIGH);
- }
- //links fahren
- if (command == 3){
- Serial.println("links fahren");
- moveVehicle(HIGH, LOW, HIGH, LOW);
- }
- //stop
- if (command == 4){
- Serial.println("stop!!!");
- analogWrite(M3, STOP_VAL);
- analogWrite(M6, STOP_VAL);
- }
- delay(250);
- }
- int readCommand(){
- int command = 4;
- if (irrecv.decode(&results)) {
- //Serial.println(results.value, HEX);
- //Serial.println(results.value, DEC);
- switch (results.value){
- case 16718055 : //vorwärts fahren
- command = 0;
- break;
- case 16730805 : //rückwärts fahren
- command = 1;
- break;
- case 16734885 : //rechts fahren
- command = 2;
- break;
- case 16716015 : //links fahren
- command = 3;
- break;
- case 16726215 : //stop!!!
- command = 4;
- break;
- }
- irrecv.resume(); // Receive the next value
- }
- return command;
- }
- void moveVehicle(int m1State, int m2State, int m4State, int m5State){
- // rechte Kette
- digitalWrite(M1, m1State);
- digitalWrite(M2, m2State);
- analogWrite(M3, DEFAULT_VAL);
- // linke Kette
- digitalWrite(M4, m4State);
- digitalWrite(M5, m5State);
- analogWrite(M6, DEFAULT_VAL);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement