Skocz do zawartości

Cinek97

Użytkownicy
  • Zawartość

    3
  • Rejestracja

  • Ostatnio

Posty napisane przez Cinek97

  1. Arduino było zasilane napięciem 5,5V, lecz po wyłączeniu zasilania i podłączeniu go z powrotem program przestał działać. Działo się tak jak opisuje jeśli po wgraniu programu arduino było ciągle zasilane wszystko było ok, lecz jeśli odłączyłem choćby na 10 sekund mu zasilanie, program przestawał działać. Przycisk restet nic nie dawał. Co lepsze jak wgrałem ten sam program na Arduino Uno to on działa lecz mam spadki napięcia  na wyjściach shielda. (wcześniej działałem na leonardo). W obu przypadkach używam tego samego kodu podanego w pierwszym poście.

  2. Witam

    To jest shield wpinany na arduino: https://botland.com.pl/pl/arduino-shield-kontrolery-silnikow-i-serw/8224-l293d-motor-driver-board-sterownik-silnikow-16v06a-nakladka-dla-arduino-iduino-st1138-5903351241267.html

    Ogólnie dziś potestowałem dalej i doszedłem do takich wniosków:
    -pierwsze wgranie + nie odłączenie kabla USB wpiętego do arduino Leonardo + zasilanie wpięte do shielda wszystko działa, czołg porusza się

    - po odłączeniu przewodu od komputera i ponownym go podłączeniu program przestaje działać.

    Dodam jeszcze, że to komunikacji z telefonem używam tego https://botland.com.pl/pl/moduly-bluetooth/6642-modul-bluetooth-21-xm-15b-33v5v.html

  3. Dobry wieczór,

    Jestem "świeży" w sprawach programowania kontrolerów takich jak arduino, ale musiałem zrobić projekt na uczelnie. Wybrałem sobie sterowany przez moduł bluethooth XM-15 czołg. Podłączyłem wszystko z lekką pomocą stworzyłem połączenie  z telefonem, przy użyciu terminala arduino "odpowiadało mi". Więc dodałem bibliotekę do silników dodałem kilka linijek kodu i wtedy zaczął się problem. Używam shielda z L293D i póki arduino jest połączone z komputerem czołg się porusza, ale jeśli podepnę zasilanie do złącza DC, nic nie działa. Używam Arduino Leonardo, a moduł bluethooth jest połączony do pinów 10,11. Czy to wina płytki czy coś w kodzie mam nie tak? Drugie pytanie czy da się zamiast terminala sterować za pomocą "gotowych kontrolerów" z google marketu. Poniżej kod programu:

    
    #include <SoftwareSerial.h>                  
    #include <MotorDriver.h>
    //Deklaracja portu szeregowego dla Bluetootha
    SoftwareSerial Bluetooth(10, 11);             //Utworz instancje Bluetooth 10-RX 11-TX
    int buffer_in[200];
    int i=0;
    int BluetoothDane;                            //do zmiennej int będą zapisywane odebrane dane
    MotorDriver m;
    int jade=0;
    void setup() {
     //i=0;
    // jade=0;//uruchomienie transmisji z terminalem 
     while(!Serial); 
       Serial.begin(9600);
       Bluetooth.begin(9600);
       
            //uruchom SerialSoftware z prędkością 9600 baud
      //Serial.println("Polaczyles sie  z modulem Bluetooth czolgiem");
     // digitalWrite(13,LOW);
    }
    
    void loop() {
    
      if (Bluetooth.available())                  //Jeśli są jakieś dane
      {              
      i=0;
      while (Bluetooth.available()>0)  //Odczytujemy dane z bluetooth aż odczytamy wszystko
       {
        buffer_in[i]=Bluetooth.read();           //kopiuje dane z bluetooth do bufora
        i++;
       }
       digitalWrite (13,HIGH);
      Serial.println("Odebrano =\n"); 
     Serial.print(i);
    //Serial.print("Zawartosc bufora\n");
    for(int j=0;j<i-5;j++)
      Serial.println(buffer_in[j]);
     Serial.print("Koniec bufora\n"); 
    
      if (i>0) //sprawdzamy czy cokolwiek odebraliśmy
       {  //jesli tak to sprawdzamy co w buforze 
        if (buffer_in[0]==1)
         {
         Serial.println("jade do przodu");
          m.motor(1,FORWARD,255);
          m.motor(4,FORWARD,255);    
         }
        if (buffer_in[0]==2)
        { 
         Serial.println("jade do tylu");
          m.motor(1,BACKWARD,255);
          m.motor(4,BACKWARD,255);
        } 
        if (buffer_in[0]==3)
        {  
          Serial.println("prawo");
          m.motor(1,FORWARD,255);;
          m.motor(4,BRAKE,0);
        }
        if (buffer_in[0]==4)
           { 
          Serial.println("lewo");
          m.motor(4,FORWARD,255);
          m.motor(1,BRAKE,0);
          }
        if (buffer_in[0]==5)
         {
         Serial.println("Stop");
          m.motor(1,BRAKE,0);
          m.motor(4,BRAKE,0);
         }
          //jak już sprawdzilismy co w buforze to trzeba go wyczyscic 
          // i w następnym przebiegu petli znowu czekamy na coś co przyjdzie z blue  
          memset(buffer_in, 0, sizeof(buffer_in));
       }  
       delay(1);                                   //odczekaj 1ms  
      }  
    }

     

×
×
  • 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.