Arduino ( switch case)

Raspberry, Arduino, Mini-PC a další

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
denny_ul
Příspěvky: 30
Registrován: 14 zář 2015, 02:00
Bydliště: Ústí n.L.

Arduino ( switch case)

#1 Příspěvek od denny_ul »

Poradí někdo jak v následujícím kódu přidělím case hodnotu od 130 do 170 a ještě jestli můžu použít i case > 170?
V různých příkladech jsem jen našel, že tomu přidělují jen jednu hodnotu

Kód: Vybrat vše

 switch (Svetla) {
    case ?????:          // pro hodnotu od 130 do 170:
      digitalWrite(Svetlo1, HIGH)
      digitalWrite(Svetlo2, LOW)
      break;
    case > 170:         // může tady být ">" ?
      digitalWrite(Svetlo1, HIGH)
      digitalWrite(Svetlo2, HIGH)
      break;
    default:
      digitalWrite(Svetlo1, LOW)
      digitalWrite(Svetlo2, LOW)
  }

Uživatelský avatar
mikollar
Příspěvky: 1406
Registrován: 26 pro 2004, 01:00
Bydliště: Košice - okolie

#2 Příspěvek od mikollar »

jednoduchsie pre tento pripad bude ak pouzijes

Kód: Vybrat vše

if(Svetla >= 130 && Svetla <= 170)
{
     digitalWrite(Svetlo1, HIGH) 
      digitalWrite(Svetlo2, LOW) 
}
else if(Svetla > 170)
{
     digitalWrite(Svetlo1, HIGH) 
      digitalWrite(Svetlo2, HIGH) 
}
else
{
       digitalWrite(Svetlo1, LOW) 
      digitalWrite(Svetlo2, LOW) 
}

Uživatelský avatar
Honza_dy
Příspěvky: 2172
Registrován: 20 srp 2004, 02:00
Bydliště: Brno-venkov

#3 Příspěvek od Honza_dy »

Souhlas s mikollarem. V tomto případě není switch vhodný.

Uživatelský avatar
saitt
Příspěvky: 107
Registrován: 11 lis 2015, 01:00
Bydliště: Ostrava

#4 Příspěvek od saitt »

Case je dobrý třeba na tohle mám :nějakou proměnou třeba na přepínaní menu na lcd displeji tlačítkama volím ,které menu chci a zvyšuji hodnotu proměné menu o jednu ,když přeteče tak ji vrátím na začátek-na nulu a to i opačně když jedu nahoru. a case mi rozpoznává které menu mám vybrat..

Kód: Vybrat vše

void dispMenu() {
  switch (menu) {
    case 1:
      menu1();
      break;
    case 2:
      menu2();
      break;
    case 3:
      menu3();
      break;
    case 4:
      menu4();
      break;
  }
Naposledy upravil(a) saitt dne 15 led 2016, 14:32, celkem upraveno 1 x.

Uživatelský avatar
rnbw
Příspěvky: 32312
Registrován: 21 bře 2006, 01:00
Bydliště: Bratislava

#5 Příspěvek od rnbw »

GCC podporuje rozsirenie case range:

Kód: Vybrat vše

 switch (Svetla) { 
     case 130 ... 170:          // pro hodnotu od 130 do 170: 
       digitalWrite(Svetlo1, HIGH) 
       digitalWrite(Svetlo2, LOW) 
       break; 
     case 170 ... 255:         // musis uviest maximalnu hodnotu
       digitalWrite(Svetlo1, HIGH) 
       digitalWrite(Svetlo2, HIGH) 
       break; 
     default: 
       digitalWrite(Svetlo1, LOW) 
       digitalWrite(Svetlo2, LOW) 
   }

Odpovědět

Zpět na „Miniaturní počítače (Arduino, Raspberry a další)“