Skocz do zawartości

Sterowanie silnikami DC z BT


Pomocna odpowiedź

#include <SoftwareSerial.h>
  
SoftwareSerial blue(2, 3);

#define led 13
  
char znak = 0;

void setup() {
  blue.begin(9600); // tu zmieniasz predkosci!!!
  Serial.begin(9600);
  pinMode(led, OUTPUT);
}

void loop() {

  if (blue.available() > 0) { // tu twój serial BT
 
    znak = blue.read();
    Serial.println(znak);
  }
  if (znak == 's') {
    digitalWrite(led, HIGH);
  } else if (znak == '0') {
    digitalWrite(led, LOW);
    }
  }

 

IMG_20210804_180536318.jpg

teraz zrobiłam troche prostszy przykład z sama dioda na pinie 13 i ztym kodem juz ten silnik sobie daruje tylko grunt w tym aby zrobić zdalne sterowanie tej diody z arduino i nadal nic sie nie dzieje a piny z modułu bluethooth podłaczyłam tak do 2/3 -rx\tx

nadal nic ;/ zmieniam te prędkosci niby przy kazdej zmianie mi miga przez chwile ale pozniej przestaje i zdalne sterowanie też nie dziala, interfejs aplikacji mobilnej wyglada tak :Screenshot_20210804-182247.thumb.png.426054c28d4a42701dead41daf9a77a0.png

(edytowany)

Wyslij zdjecie jak to jest trraz podlaczone tak zeby bylo widac gdzie rx/tx na blue jest i piny na arduino... (ten kod dziala i musi dzialac)

Edytowano przez farmaceuta
12 minut temu, faustin napisał:

zmieniam te prędkosci niby przy kazdej zmianie mi miga przez chwile 

Ale gdzie zmieniasz??? Ty masz zmienic predkosc w kodzie i ten kod wgrac...a w monitorze nic nie zmieniasz...ma byc 9600

Dobrze...polaczenie jes ok...a paruje sie modul z tel??? (czerwona dioda na blue ma przestac migac i swiecic ciagle)

W monitorze ustaw 9600 i nie ruszaj...

W tej linijce zmieniasz predkosci..

blue.begin(9600); // tu zmieniasz predkosci!!!

I wgrywasz za kazdym razem kod...oczywiscie predkosci wpisujesz takie jakie sa fabrycznie...

tak moduł jet sparowany bo nie miga tylko jest ciągle na czerwono i moj telefon i aplikacja go wykrywaja wiec kwestia podłaczenia jest ok

image.thumb.png.dbd9d39633fec6679f92d5e71db3709c.pngale tutaj mam w obydwu miejscach zmieniac ta predkosc na taka sama czy tylko w tym blue a tam dalej ma byc 9600?

i co ma sie ojawic w serial monitor?

IMG_20210804_195200165.thumb.jpg.8ba5d2733625f383e8be52cb4347f0f7.jpgIMG_20210804_200644238.thumb.jpg.6b45a79147d6d803f123e15a19b532ac.jpgIMG_20210804_200702009.thumb.jpg.2c5f630ed941c1804339e5dc191c754a.jpg

void setup() {
Serial.begin(9600);
 pinMode(8, OUTPUT); // ustawiamy pin 8 jako wyjście
 }

void loop() {

 if(Serial.available()>0) //sprawdzamy czy są jakieś bity do odczytania jeśli są to przypisujemy je do zmiennej odczyt typu char.
   {     
      char odczyt= Serial.read(); //przypisanie do zmiennej odczyt odebranego znaku
      switch(odczyt) //pętla switch 
      {
        case '1': digitalWrite(8, HIGH);break; // kiedy wyślemy z telefonu 1, Arduino ustawi stan wysoki na pinie 8
        case '2': digitalWrite(8, LOW);break; // gdy wyślemy 2 Arduino ustawi stan niski na pinie 8
    
        default : break;
      }
      Serial.println(odczyt);
   }
   delay(50);
}

udało sie ! choc zrobiłam to troche innaczej , bez wpisywania tych prędkosci , samym kodem na 1 dałam stan właczenia diody na 2 wyłączenia aplikacj e w tel tez zmieniłam na serial bluetooth terminal i jest zdalnie teraz steruje dioda z telefonu , zaraz zobacze jak to bedzie na silniku,

Screenshot_20210804-200731.png

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