Robot IR remote

Arduino specifieke Software
Berichten: 11
Geregistreerd: 23 Dec 2016, 14:35

Robot IR remote

Berichtdoor maxgrin » 24 Dec 2016, 21:55

Hoi,
Ik ben bezig met mijn robot maar nu wil ik hem bestuurbaar maken met infra-rood.
Ik blijf de zelfde foutmelding krijgen:
Robot1:98: error: 'C796DFC' was not declared in this scope

if (results.value == C796DFC || results.value == B10C7C8B) {

^

Robot1:98: error: 'B10C7C8B' was not declared in this scope

if (results.value == C796DFC || results.value == B10C7C8B) {

^

Robot1:100: error: 'DB510F56' was not declared in this scope

} else if (results.value == DB510F56) {

^

exit status 1
'C796DFC' was not declared in this scope.

Dit is mijn Code:
Code: Alles selecteren
long duration, distance;
#define Green 24
#define Red 25
#define trigPin 22
#define echoPin 23
#include <AFMotor.h>
#include <IRremote.h>
int IRpin = 44;
IRrecv irrecv(IRpin);
decode_results results;
AF_DCMotor motorR(1);
AF_DCMotor motorL(2);

void setup() {
  irrecv.enableIRIn();
  Serial.begin(9600);
  motorR.setSpeed(100);
  motorL.setSpeed(100);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(Green, OUTPUT);
  pinMode(Red, OUTPUT);

}

void loop() {
  manual_mode();
}

void Forward() {
  motorR.run(FORWARD);
  motorL.run(FORWARD);
}
void Backward() {
  motorR.run(BACKWARD);
  motorL.run(BACKWARD);
  delay(250);
}

void Right() {
  motorL.run(BACKWARD);
  motorR.run(FORWARD);
  delay(375);
}

void Left() {
  motorL.run(FORWARD);
  motorR.run(BACKWARD);
  delay(375);
}
void Brake() {
  motorR.run(BRAKE);
  motorL.run(BRAKE);
  delay(100);
}

void auto_mode() {
 
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  duration = pulseIn(echoPin, HIGH);
  distance = (duration / 2) / 29.1;
  if (distance <= 25) {
    Brake();
    digitalWrite(Green, LOW);
    digitalWrite(Red, HIGH);
    Backward();
    Brake();
    Right();
  }
  else {
    digitalWrite(Red, LOW);
    digitalWrite(Green, HIGH);
    Forward();

  }
}

void manual_mode() {
  if (irrecv.decode(&results)) {
   
    Serial.print("irCode: ");           

    Serial.print(results.value, HEX);

    Serial.print(",  bits: ");           

    Serial.println(results.bits);

    irrecv.resume(); 
  }
delay(100);
  if (results.value == C796DFC || results.value == B10C7C8B) {
    Forward();
  } else if (results.value == DB510F56) {
    Backward();
  }
  else {
    Brake();
  }
}

Ik wil dus dat hij vooruitgaat bij de ene knop en bij de ander achteruit. Ja deze values horen bij deze afstandsbediening.

Advertisement

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Robot IR remote

Berichtdoor Koepel » 25 Dec 2016, 00:38

Er zijn verschillende "IRremote" libraries. Welke je gebruik je ? Met welk Arduino board ?

De compiler geeft zelf al aan dat bijvoorbeeld "C796DFC" iets onbekends is. De compiler weet niet wat het is.
De "results.value" zal een 32 bits unsigned long integer zijn, en die "C796DFC" zal een hexadecimale notatie zijn ?

Je kunt een hexadecimaal getal schrijven op deze manier:
Code: Alles selecteren
    0x0C796DFC
    0xB10C7C8B
    0xDB510F56


Lees dit maar eens door : https://www.arduino.cc/en/Reference/IntegerConstants.

Berichten: 11
Geregistreerd: 23 Dec 2016, 14:35

Re: Robot IR remote

Berichtdoor maxgrin » 25 Dec 2016, 18:20

Dankje!
De 0x heeft geholpen!

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: ojitaqoduhi, ThomasLib en 20 gasten