Skocz do zawartości

Zdalnie sterowany robot - program


mateusz797

Pomocna odpowiedź

(edytowany)

image.thumb.png.1cbb9bd4a1547c9f99619a457e3dbef5.png

#include "RichUNOIRremote.h" 
#define DEBUG
#define TEST
#define PilotPIN 13
IRrecv PILOT(PilotPIN); 

void setup() 
{
  PILOT.enableIRIn();
  Serial.begin(9600);                                  

}

void loop() 
{
  Pilot(); 
}

void Pilot()
{
  if (PILOT.decode())             
  {                               
    if(PILOT.isReleased())        
    {                             
      {                                                                               
        Serial.print(F("Odczyt z pilota !!! Kod to : ")); 
        Serial.println(PILOT.keycode);
      }                                                                               
                                                                                         
                                                                          
    }                                                                               
    PILOT.resume();                                                                 
  }                                                                                 
} 

 

1. Miesiac temu działało mi na tym programie - odczyt kodow z pilota

#define TSOP_PIN  13
 
#include <RC5.h>
RC5 rc5(TSOP_PIN); //Informacja o podłączeniu odbiornika TSOP
 
//Zmienne dla RC5
byte address; 
byte command;
byte toggle;
 
void setup() {                
  Serial.begin(9600);
}
 
void loop() {
  //Jeśli odebrano komendę
  if (rc5.read(&toggle, &address, &command))
  {
    Serial.print("A:");
    Serial.print(address);
    Serial.print(" K:");
    Serial.print(command);
    Serial.print(" T:");
    Serial.println(toggle);
  }
}

2. Potem napisalem ten, robot smigal jak burza nawet z duza predkoscia. Po miesiacu chcialem sie pobawic - cisza. Przestal dzialac

tak poprostu. Testowalem arduino silniki mostek, wszystko dziala pilot RC5 dziala, odbiornik odczytuje kody.

Program dla Robota IR (Dobrze dzialajacy miesiac temu). Na zdj wydzimy ze pilot dziala. 

#include <RC5.h>



int TSOP_PIN = 13;         // def.PIN odbiornika


RC5 rc5(TSOP_PIN); //Informacja o podłączeniu odbiornika TSOP
byte address; 
byte command;
byte toggle;
 
const int IN1 = 7;
const int IN2 = 6;
const int IN3 = 4;
const int IN4 = 5;
const int ENA = 11;
const int ENB = 3;            // Piny silników


void setup() {


pinMode (IN1, OUTPUT);
pinMode (IN2, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
pinMode (ENA, OUTPUT);
pinMode (ENB, OUTPUT);      // ust.silnikow jako wyjscia


}

void przod() {

digitalWrite (IN1, LOW);
digitalWrite (IN2, HIGH);
digitalWrite (IN3, LOW);
digitalWrite (IN4, HIGH);
analogWrite  (ENA, 150);
analogWrite  (ENB, 150);

}

void lewo() {

digitalWrite (IN1, HIGH);
digitalWrite (IN2, LOW);
digitalWrite (IN3, LOW);
digitalWrite (IN4, HIGH);
analogWrite  (ENA, 150);
analogWrite  (ENB, 150);

}

void prawo() {

digitalWrite (IN1, LOW);
digitalWrite (IN2, HIGH);
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
analogWrite  (ENA, 150);
analogWrite  (ENB, 150);

}

void tyl() {

digitalWrite (IN1, HIGH);
digitalWrite (IN2, LOW);
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
analogWrite  (ENA, 150);
analogWrite  (ENB, 150);

}

void stop() {

digitalWrite (IN1, LOW);
digitalWrite (IN2, LOW);
digitalWrite (IN3, LOW);
digitalWrite (IN4, LOW);
analogWrite  (ENA, 0);
analogWrite  (ENB, 0);

}

void loop() {
 if (rc5.read(&toggle, &address, &command)){
     switch(command) {
      case 2: //Do przodu
       przod();
      break;
 
      case 4: //Do tyłu
       lewo();
      break;
 
      case 6: //STOP
       prawo();
      break;
 
      case 8: //Obrót w lewo
        tyl();
      break; 
      
      case 0:
      stop();
      break;  
      
  


}
 }
}

 

16126334462113491573588020444635.jpg

Edytowano przez mateusz797
Link do komentarza
Share on other sites


#include <IRremote.h>
#define irPin 13
IRrecv irrecv(irPin);
decode_results results;
 
void setup() {
   Serial.begin(9600);
   irrecv.enableIRIn();
}
 
void loop() {
   if (irrecv.decode(&results)) {
      Serial.print("0x");
      Serial.println(results.value, HEX);
      delay(250);
      irrecv.resume();
      
      }
}

 

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.