Skocz do zawartości

Pomocna odpowiedź

To co Twoim zdaniem jest problemem? W pewnym momencie po prostu mikrokontroler sie zawiesza, nie wystawia zadnych napięc nic sie nie dzieje. Zauwazylem tez znaczne spadki napięc ;/

Truedno powiedzieć nie wiedząc jaki kod wykonuje, co i jak jest do niego podłączone i jak jest zasilany. Jedyne co mogę powiedzieć w tej sytuacji, to "u mnie działa".

Transmiter

#include <VirtualWire.h>
int guzik=4;
void setup()
{
 pinMode(guzik, OUTPUT); 
 vw_set_tx_pin(9);
   vw_setup(2000);	 // Bits per sec
}

void loop()
{
 char *msg;
 digitalWrite(13, true);

if (digitalRead (guzik)==HIGH) {msg="on"; }
else {msg="off"; } ;

     vw_send((uint8_t *)msg, strlen(msg));
   vw_wait_tx(); // Wait until the whole message is gone
   digitalWrite(13, false);
   delay(200);
}

Receiver

#include <VirtualWire.h>
int LED=2;
boolean LEDON=false;
char stan;
void setup()
{

 Serial.begin(9600);
 pinMode (LED,OUTPUT);
 vw_setup(2000);	 
 vw_set_rx_pin(4);
 vw_rx_start();     
}

void loop()
{
   uint8_t buf[VW_MAX_MESSAGE_LEN];
   uint8_t buflen = VW_MAX_MESSAGE_LEN;

   if (vw_get_message(buf, &buflen)) 
   {
int i;
      String stan;
 	for (i = 0; i < buflen; i++)
 { 
 stan +=char(buf[i]);
 }
    if ( stan =="on")
    {

digitalWrite (LED, HIGH);
 delay(100);
  }
  else
  {
   digitalWrite (LED, LOW);
  }
  } }

Myślałeś może, żeby ten kod trochę sformatować, żeby to się dało czytać?

Zakładam, że "zawiesza" ci się odbiornik?

Jesteś pewien, że powinieneś do "stan" przepisywać wszystkie "buflen" bajtów? Zastanów się co się stanie jak najpierw wyślesz dłuższy ciąg znaków, a po nim krótszy? Jaka będzie wtedy zawartość bufora?

Może wstaw tam parę Serial.print() żeby zobaczyć dokładnie co się dzieje?

Serial.Print wygląda tak że transmisja jest, wartość jest wyswietlana i przy którymś razie po prostu przesył danych kompletnie sie zatrzymuje, 0 reakcji.

Tego nie jestem w stanie powiedzieć, po prostu mikrokontroler zatrzymuje się po podaniu 5v na 1 z wejść i jest koniec cokolwiek bym nie zrobił nie odwiesi sie.

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