else if (1<kaka<2){
Warning comparisons like 'X<=Y<=Z' do not have their mathematical meaning
Tehát ez neked hülyeség, hiába helyes C programkód.
Ezt jelenti: Először kiértékeli ezt: 1 < kaka, ennek az eredménye egy bool lesz (true vagy false). Utána pedig megvizsgálja, hogy a kapott bool kisebb-e, mint 2, ami definíció szerint mindig true.
Helyette ez az alak használatos:
else if (1 < kaka && kaka < 2) {
De szép változóneved van...
> Mivel a switch-case-t egyáltalán nem tudtam működésre bírni (ahogy olvastam nem igazán működik az arduinon)
Pedig működik. Hol olvastál ilyet?