• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Jak poprawić kod żeby zaczął działać prawidłowo?
#11
(05-11-2017, 11:20)grzesio.px napisał(a): Nie nie przez przesady chodzi mi tylko w sumie o coś takiego żeby obsługiwało 2 przyciski już mówię do czego to ma być chcę przerobić sterowanie okapu kuchennego + sterowanie światłem w okapie i pasek led pod szafkami bo mnie żona prześladuje miało być po staremu na kościach cd 4022 i plus do tego reszta (prototyp działa) ale trzeba iść z postępem więc arduino.
I tu moje pytanie czy zrobienie czegoś takiego 1 przycisk  0->1->2->3->0; 2 przycisk 0->1->1+2->2->0 (to co dotyczy 1 przycisku to mam) to jest wyższa szkoła jazdy. Bo w sumie jestem gotów (a czego bym nie chciał bo szkoda aż dwóch arduino do takiego cuda pchać) do 2 arduino 1 jeden robi 1 przycisk a drugi to co się tyczy 2.
Dobra, to ja trochę podpowiem... ale nie wszystko Smile
Wymyśl sobie jakąś zmienną, która będzie pamiętać stan każdego z przycisków, dla przykładu stan1 i stan2. I teraz:

jeśli stan1=0 ORAZ wciśnięty przycisk1 -> stan1=1
...i tak dalej, aż do
jeśli stan1=3 ORAZ wciśnięty przycisk1 -> stan1=0
...
Tak samo dla drugiego przycisku. 
I potem, w zależności od wartości zmiennej stan1 i stan2, niech się dzieje co chcesz Smile
I, nie ma obawy, jedno arduino udźwignie oba przyciski i ich obsługę.
 
Odpowiedź
#12
Po przesiedzeniu nad tematem doszedłem do wniosku że ze mnie programisty nie będzie a nie oczekuję że ktoś mi da gotowca bo nawet bym nie chciał  mam działający kod który zmodyfikuję pod drugie Arduino (u naszych Chińskich braci PRO MINI chodzi po 6 zł za sztukę)  wiem że to przerost formy nad treścią ale szkoda mojego czasu i tak nic nie wymyślę ale tak czy inaczej dzięki że pochyliliście się nad moim tematem poniżej kod który mam i dla mnie działa ok

Kod:
#define LED2 6
#define LED3 7
#define LED1 5
#define przycisk 2

int numer = 4;
boolean wys = false;
boolean nis = false;

void setup() {
// put your setup code here, to run once:
pinMode(przycisk, INPUT);

pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
}

void loop() {
// put your main code here, to run repeatedly:
wys = digitalRead(przycisk);

if (wys && !nis) {
   numer++;

   if (numer > 3) {
      numer = 0;
   }
}
nis = wys;

switch (numer) {
    case 0:
      digitalWrite(LED1, HIGH);
      digitalWrite(LED2, LOW);
      digitalWrite(LED3, LOW);
      break;

    case 1:
      digitalWrite(LED1, LOW);
      digitalWrite(LED2, HIGH);
      digitalWrite(LED3, LOW);
      break;

    case 2:
      digitalWrite(LED1, LOW);
      digitalWrite(LED2, LOW);
      digitalWrite(LED3, HIGH);
      break;

    default:
      digitalWrite(LED1, LOW);
      digitalWrite(LED2, LOW);
      digitalWrite(LED3, LOW);
      break;
 
}  
}
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości