Skocz do zawartości

Radiowe sterowanie kierunkiem silnika


silver2001

Pomocna odpowiedź

Cześć, napisałem program w którym steruje prędkością silnika radiowo dla arduino :

nadajnik ( arduino nano ):

#include <VirtualWire.h>

// definiujemy piny 
#define led_pin 13
#define transmit_pin 8
#define pot_pin A0

void setup()
{
   vw_set_tx_pin(transmit_pin);
   vw_setup(2000);
   pinMode(led_pin, OUTPUT);
}

void loop()
{
 int pot = analogRead(pot_pin);
 String toSend = (String(pot, DEC)); 
 char msg[23]; // tworzymy tablicę typu char
 toSend.toCharArray(msg, toSend.length() + 1);

 digitalWrite(led_pin, HIGH); 
 vw_send((uint8_t *)msg, strlen(msg)); 
 vw_wait_tx(); 
 digitalWrite(led_pin, LOW);
 delay(100); 

}

odbiornik ( arduino mega ):

#include <VirtualWire.h>

#define led_pin 10
#define receive_pin 13
#define pwm_pin 9
void setup()
{
   Serial.begin(9200);
   Serial.println("setup");
   vw_set_rx_pin(receive_pin);
   vw_setup(2000);   
   vw_rx_start(); 

   pinMode(led_pin, OUTPUT);
   pinMode(pwm_pin, OUTPUT);

}

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

   if (vw_get_message(buf, &buflen))
   {
 int i,pwm,wartosc;
       String liczba;
       digitalWrite(led_pin, HIGH);
       for (i = 0; i < buflen; i++) 
       {
         liczba+=char(buf[i]); 
       }
       wartosc = liczba.toInt();
       pwm = map(wartosc,0,1023,0,255);
       Serial.println (pwm);
       analogWrite(pwm_pin, pwm);
       digitalWrite(led_pin, LOW); 

      if(digitalRead(pwm < 120))
      {
       digitalWrite(30,LOW);
       digitalWrite(32,HIGH);
      }

     if(digitalRead(pwm > 150 ))
      {
       digitalWrite(30,HIGH);
       digitalWrite(32,LOW);
      }

      if(digitalRead(pwm > 120 && pwm < 150))
      {
       digitalWrite(30,LOW);
       digitalWrite(32,LOW);
      }
   }   
}

Problem w tym ze między wartością 120 a 150 pwm-a silnik kręci się, a nie powinien a po za tymi wartościami w ogóle się nie kręci.

O co chodzi w tym ?

Link do komentarza
Share on other sites

To już chyba Twój któryś z kolei temat z tym samym pytaniem. Nie możesz zamknąć sprawy w jednym?

Rozbij zadanie na dwa problemy: a) przesyłanie liczby przez radio b) sterowanie silnikami na podstawie liczby i zobacz co działa a co nie.

Link do komentarza
Share on other sites

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.