Hola.
Hablando con el compañero Kusaro,he salido del pantano de dudas en el que me veía.
Primeramente, paso a explicar el mini-proyecto.
Tenemos una tira de leds rgb que acepta cinco voltios como máximo, en estas cosas aliexpress es lo mejor, ya que por cinco euros tienes un par de metros con conector usb, receptor y mando a distancia.
Pero se puede sustituir por los leds de encendido del pc o lectura de disco duro o cualquier led, de los que van a cinco voltios, no teneis nada que temer.Yo lo he probado en esto tambien:
Era un teclado inálambrico que me cargué (no vamos a entrar en detalles) y ahora mismo es el mejor uso que puedo darle, el led amarillo que veis se apaga y enciende durante el tiempo que yo quiera, cambiandole el codigo en arduino ide (programa para windows)y luego subiendolo a la tarjeta, se memoriza en el chip. (el mio es CH340, creo que el atmega es más divertido)
Vamos con lo que ya sabemos hoy, si conecto la tira de leds funciona perfectamente, de momento solo lo puedo hacer con uno de los leds a la vez, pero bueno ya veremos a ver si somos capaces de añadir los otros dos (verde,rojo y azul)
El led se apaga y enciende con el tiempo que yo le ponga.
Os voy a explicar la conexión tan sencilla que lleva, por si alguno quiere animarse como yo.
Para empezar, pido disculpas porque en la foto hay dos resistencias que sobran, no se utilizan( las tengo puestas porque pensaba que podría hacer el codigo para tres leds a la vez, pero solo he podido con uno)
Si os fijais en la foto de arriba, hay un pin GROUND que sale de arduino uno y a traves de un cablecito negro llega a la protoboard.
Otro vistazo más y vereis un cablecito amarillo que sale del pin 9 (digital outputs) del arduino y llega a la proto board justo para hacer contacto con la resistencia.
Si habeis entendido hasta aquí ahora queda, lo más facil, conectar la tira de leds.
Conectamos los +5voltios de la tira de leds a la otra patilla que queda libre de la resistencia (en la otra patilla quedo el pin 9 del arduino). Y uno de los tres colores al GROUND de la protoboard.
Y voila.
Nota:en teoría la resistencia, no es necesaria (220 ohmios, creo) ya que arduino lleva una resistencia en las salidas digitales y protege el dispositivo, con la resistencia el led luce un poquito menos, pero mi ignorancia se tranquiliza.
Aquí podeis ver de cerca la conexión en la protoboard
El cable amarillo que entra en una de las patillas de la resistencia,que viene del pin 9 de arduino.
El cable naranja que sale de una de las patillas de la resistencia va directamente a +5V de la tira de leds
El cable negro y rojo son GROUNDS.El cable negro viene del GROUND de arduino y el cable rojo viene de la tira de leds (en la foto de abajo viene de R de la tira de leds, o sea el red- rojo) (sorprendentemente, para mi, el led azul y rojo estan a la inversa, es decir si actuamos sobre un canal, cambia el otro)
En esta foto de abajo el ground viene del canal G (usease green- verde)
Y por ultimo, no menos importante, el ground viene del canal B o sea blue-azul (ya os he comentado de las peculiaridades de estos dos canales azul y rojo)
Y eso es todo de momento, con el codigo si os fijais en la parte, son milisegundos, cambiando estye valor podremos cambiar el tiempo de permanecer apagado y encendido del led.
CODICE
/*
Programa: Enciende un LED y lo apaga indefinidamente en una secuencia programada
Autor: Humberto Higinio
Web: www.humbertohiginio.com
Canal de Youtube: https://youtube.com/user/HHsolis
Video Exclusivo para mi canal de Youtube
Todos los Derechos Reservados - 2015
Codigo de Dominio Publico
Y flicki tamien ;)
*/
// Sobre la mayoria de tarjetas Arduino el pin 13 tiene un LED conectado
// Vamos a usar otro pin, el numero 9
// Le daremos un nombre para identificarlo
// Vamos a definir nuestra primera variable, llamada led y le damos el valor de 9
int led = 9;
// La funcion setup se ejecuta una sola vez cuando se enciende Arduino o cuando se presiona el Reset
void setup () {
// Configuramos el pin digital 9 como salida
pinMode (led, OUTPUT);
}
// La funcion Loop se ejecuta una y otra vez como un lazo cerrado
void loop () {
int tiempoON = 1000; // Declaramos una variable de tiempo Encendido
int tiempoOFF = 1000; // Declaramos una variable de tiempo Apagado
digitalWrite (led, HIGH); // Enciende el led definido sobre el pin 9
delay (tiempoON); // Espera un segundo
digitalWrite (led, LOW); // Apaga el led definido sobre el pin 9
delay (tiempoOFF); // Espera un segundo
}
Si intento meterle mas leds, tengo el problema en la parte del loop, no tengo ni idea de como hacerlo bien jeje,me hace falta mucha practica y leer mucho sobre codigo, pero esa parte es muy complicada.
En fin poco a poco, hoy gracias a Humberto, ya sé convertir de decimal a hexaedecimal y tambien pasar un numero a binario, (nunca sabes lo que te pueden preguntar en quien quiere ser millonario)
Edited by flicki - 9/4/2018, 02:15