Skocz do zawartości

Sterowanie bezprzewodowe serwomechanizmem za pomocą tact switchy i nrf24l01.


Pomocna odpowiedź

Przyciski podłączone do 5V.

Zdjęcie z serial monitora w załączniku

Kod:

//Transmiter
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(7, 8); // CE, CSN
const byte address[6] = "00001";


void setup() {
  radio.begin();
  radio.openWritingPipe(address);
  radio.setPALevel(RF24_PA_MIN);
  radio.stopListening();
pinMode(2 , INPUT);
pinMode(3 , INPUT);
}
 void loop(){
  char text1[] = "up";
  char text2[] = "down";
  int button_1 = digitalRead(2);
  int button_2 = digitalRead(3);
  if (button_1 == 1){
    radio.write(&text1, sizeof(text1));
    
  }
  if (button_2 == 1){
    radio.write(&text2, sizeof(text2));
   
  }
  }
//Reciver
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>




RF24 radio(7, 8); // CE, CSN
const byte address[6] = "00001";
void setup() {
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(0, address);
  radio.setPALevel(RF24_PA_MIN);
  radio.startListening();

}
void loop()
{  
  if (radio.available())
  {
    char text[32] = {0};
    radio.read(&text, sizeof(text));
    Serial.println(text);
   
 }
}

 

3333.png

To komplikuje sprawę, bo jeśli masz przyciski podłączone do 5V to po wciśnięciu przycisku masz na nim stan wysoki, ale jak nie wciśniesz to możesz mieć wysoki lub niski - loteria.

(edytowany)
14 minut temu, Lolheadshootpl napisał:

Czyli nie ma możliwości podpięcia przycisków pod 5V ? Serio?

Da się, ale musisz mieć wtedy zewnętrzne rezystory ściągające do masy. AVR-y niestety nie mają wbudowanych PULLDOWN, tylko PULLUP.

Edytowano przez deshipu
(edytowany)

To sprawdz miernikiem czy dobrze podpiales...juz tu byl taki przypadek ze ktos uzywal takiego samego guzika zle

Albo jeszcze tak...napisz prosciutki program ktory bedzie zapalal diode jak guzik wcisniety i sprawdz czy napewno guziki chodza

Edytowano przez farmaceuta
#define guzik 5
#define guzik1 6
  
  if (guzik == HIGH) {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(200);
  } else {
  digitalWrite(LED_BUILTIN, LOW);
  }

  if (guzik1 == HIGH) {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(200);
  } else {
  digitalWrite(LED_BUILTIN, LOW);
  }

wgraj i zobacz czy swieci dioda jak wciskasz guziki

15 minut temu, Lolheadshootpl napisał:

czy mogę użyć pinów D13, D12,D11 do wejść przycisków, kiedy mam podpięte NRF24l01 do złącz ICSP?

To są te same piny, więc... możesz, ale nie powinieneś.

Da się zakombinować z przełączaniem CS i opornikami żeby tych pinów użyć do dwóch rzeczy na raz, ale jak masz inne wolne, to łatwiej użyć innych.

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