ARCADE FOREVER

Controlar leds con arduino uno.

« Older   Newer »
  Share  
Kusaro
view post Posted on 8/4/2018, 17:32 by: Kusaro     +1   +1   -1
Avatar

V.I.P.

Group:
Member
Posts:
225
Reputation:
+23

Status:


:unsure:
Ay, casi que dejemos lo del botón a un lado....
En fin, acabo de ponerme con ello, te paso el código y un pequeño video para que lo veas:
CODE
char option = 'b';
int rojo = 9; // LED connected to digital pin 9
int verde = 6; // LES conestao al digital pin 8
int azul = 5; // LES conestao al digital pin 7
int valrojo = 255; // variable to store the read value
int valverde = 122; // variable to store the read value
int valazul = 61; // variable to store the read value
boolean first_time = true;

void setup(){
 Serial.begin(9600);
 pinMode(rojo, OUTPUT); // sets the pin as output
 pinMode(verde, OUTPUT);
 pinMode(azul, OUTPUT);
}

void loop(){
 //si existe datos disponibles los leemos
if (Serial.available()>0){
 option=Serial.read();
 if (option == 'a'){
   first_time = true;
 }
 
}
if (option=='a'){
 if (first_time == true){
   valrojo = 255;
   valverde = 122;
   valazul = 61;
   first_time = false;
 }
 valrojo = (valrojo+15)%256;
 valverde = (valverde+15)%256;
 valazul = (valazul+15)%256;
}
if (option == 'b'){
 valrojo = 122;
 valverde = 122;
 valazul = 122;
}
analogWrite(rojo, valrojo);
analogWrite(verde, valverde);
analogWrite(azul, valazul);
delay(75);

}


Con este código, ya no necesitas botón, se realiza a través de la conexión serie de arduino con el pc

Video



Como puedes ver, solo tienes que abrir el monitor serie de arduino, y según mandes "a" o "b" se pondrá en arealizar la secuencia de colores o se quedará parado. Simple ¿no?

Y si me das un par de minutos te mando tambien el código para controlarlo desde un script de python....

EDITO:
Ya esta. Estos serían los scripts para habilitar y deshabilitar el movimiento de las lucecitas:

send_a.py
CODE
import serial
import time

com = serial.Serial()
com.port = 'COM8'
com.baudrate = 9600
com.timeout = 1
com.setDTR(False)
com.open()

try:
       com.write('a')
       com.close()

except:
       pass


send_b.py
CODE
import serial
import time
com = serial.Serial()
com.port = 'COM8'
com.baudrate = 9600
com.timeout = 1
com.setDTR(False)
com.open()


try:
       com.write('b')
       com.close()
except:
       pass


Ojo, necesitas tener python27 instalado junto con Pyserial, ah y el puerto con puede que en tu caso no sea "COM8" ya que te lo asigna el pc compruebalo desde el terminal IDE de arduino para saber cual es
 
Top
115 replies since 7/4/2018, 09:00   1139 views
  Share