|
Buenas noches, recién adquirí un arduino uno por recomendaciones en la universidad, estoy acostumbrado a usar microcontroladores de microchip, opte por usar avr pero el cambio es muy radical y algo tan fácil no puedo desarrollarlo necesito ayuda, el planteamiento es sencillo se tiene una entrada analógica que dividiré en 8 para que por casos prenda leds, explicado de otra forma tengo un potencimetro que oscila de 0v a 5v si es 0v no se prenderá ningún led de los puertos digitales pero si hay 5v prenderán 8 led's (1 byte), si hay 2.5v prendan 4 leds y así como prendiendo una seria, el problema realmente es con la programación no entiendo como funciona, mi programa va algo así pensando aun como microchip.
int led1= 13; int led2 =12; int led3 =11; int led4 =10; int led5 = 9; int led6 = 8; int led7 = 7; int led8 = 6; int pot = A1; int val1= 0; void setup() { pinMode(led1,OUTPUT); pinMode(led2,OUTPUT); pinMode(led3,OUTPUT); pinMode(led4,OUTPUT); pinMode(led5,OUTPUT); pinMode(led6,OUTPUT); pinMode(led7,OUTPUT); pinMode(led8,OUTPUT); }
void loop() { val1=analogRead(pot); float val= val1*(5.0/1023); if (val > 0 && val <=127) {digitalWrite(led1,HIGH);} if ( val >127 && val <=254) {digitalWrite(led1,HIGH); digitalWrite(led2,HIGH);} if (val >254 && val <=381); { digitalWrite(led1,HIGH); digitalWrite(led2,HIGH); digitalWrite(led3,HIGH);} if(val>381 && val <=508); { digitalWrite(led1,HIGH); digitalWrite(led2,HIGH); digitalWrite(led3,HIGH); digitalWrite(led4,HIGH);} if (val>508 && val<=635); { digitalWrite(led1,HIGH); digitalWrite(led2,HIGH); digitalWrite(led3,HIGH); digitalWrite(led4,HIGH); digitalWrite(led5,HIGH); } if (val>635 && val<=762); { digitalWrite(led1,HIGH); digitalWrite(led2,HIGH); digitalWrite(led3,HIGH); digitalWrite(led4,HIGH); digitalWrite(led5,HIGH); digitalWrite(led6,HIGH); } if (val>762 && val<=889) { digitalWrite(led1,HIGH); digitalWrite(led2,HIGH); digitalWrite(led3,HIGH); digitalWrite(led4,HIGH); digitalWrite(led5,HIGH); digitalWrite(led6,HIGH); digitalWrite(led7,HIGH); } if (val>889 && val <=1023); { digitalWrite(led1,HIGH); digitalWrite(led2,HIGH); digitalWrite(led3,HIGH); digitalWrite(led4,HIGH); digitalWrite(led5,HIGH); digitalWrite(led6,HIGH); digitalWrite(led7,HIGH); digitalWrite(led8,HIGH); } if(val==0); { digitalWrite(led1,LOW); digitalWrite(led2,LOW); digitalWrite(led3,LOW); digitalWrite(led4,LOW); digitalWrite(led5,LOW); digitalWrite(led6,LOW); digitalWrite(led7,LOW); digitalWrite(led8,LOW); } }
|