Tú puedes programar muy fácilmente tu driver con Arduino
Publicado: 08 Jun 2013 03:36
Antes de empezar a deciros que hay que comprar y que programas hay que instalar para programar un driver de nuestras linternas, es mejor motivar al personal mostrando lo fácil que es programar en Arduino un microprocesador. Y con ejemplos aplicados a los drivers.
EDITO: Lo que hay que comprar y como se instala los programas está explicado aquí:
http://www.forolinternas.com/viewtopic.php?f=22&t=6630
Vamos a trabajar con el driver Nanjg 105C. ¿Por qué? Porque es un driver económico, muy utilizado en linternas, y fácilmente programable, al llevar un microprocesador Attiny13, que es soportado por Arduino.
Enlace compra en Fasttech (versión de 2.8 Amperios):
https://www.fasttech.com/products/1122302
A continuación se muestra este driver:

El chip que tiene los números 1 a 8 en amarillo es el microprocesador Attiny13.
Es importante hacer notar que el control sobre el led (cantidad de luz, posible flash) se hace con la patilla 6. A mayor salida en la patilla 6 mayor luz dará el led. En la patilla 6 se encuentra la entrada/salida digital número 1, de las varias que tiene este chip.
Código en Arduino. Un solo modo en máxima potencia.
A continuación figura una imagen del mismo código en el compilador de Arduino, Arduino IDE. Así quedaría el código en el compilador. Como ves, es el mismo aspecto del código de antes. Observa abajo del todo que la cantidad de memoria utilizada es 438 bytes, de total de 1024 que tiene el Attiny13.

El programa está comentado y leyendo esos comentarios es muy sencillo de entender. Como lo que se repite siempre, sin parar, al estar dentro de loop(), es analogWrite(ledpin, 255) la linterna recibe siempre ordenes de estar en modo máximo, puesto que el valor máximo de salida es 255. Así pues, la patilla 6 está indicando al driver que de toda la potencia que pueda.
El código, sin comentarios, para que se vea lo sencillo que es:
EDITO: Lo que hay que comprar y como se instala los programas está explicado aquí:
http://www.forolinternas.com/viewtopic.php?f=22&t=6630
Vamos a trabajar con el driver Nanjg 105C. ¿Por qué? Porque es un driver económico, muy utilizado en linternas, y fácilmente programable, al llevar un microprocesador Attiny13, que es soportado por Arduino.
Enlace compra en Fasttech (versión de 2.8 Amperios):
https://www.fasttech.com/products/1122302
A continuación se muestra este driver:

El chip que tiene los números 1 a 8 en amarillo es el microprocesador Attiny13.
Es importante hacer notar que el control sobre el led (cantidad de luz, posible flash) se hace con la patilla 6. A mayor salida en la patilla 6 mayor luz dará el led. En la patilla 6 se encuentra la entrada/salida digital número 1, de las varias que tiene este chip.
Código en Arduino. Un solo modo en máxima potencia.
La imagen anterior muestra el programa más simple para controlar una linterna. No tiene modos, no tiene memoria, solo enciende la linterna a la máxima potencia que tenga el driver.
//PROGRAMA LINTERNA SOLO MODO ALT0
//a continuación se dice al compilador que cada vez que encuentre ledpin
//lo substituya por 1. Ese valor 1 corresponde a la patilla digital número 1 del
//chip Attiny13 //que lleva el driver Nanjg 105c. La entrada/salida digital 1
//está en la patilla 6 del circuito integrado Attiny13
#define ledpin 1
//a continuación, dentro de setup() {}, se escribe el código que se ejecuta
//al arrancar el chip, es decir, al encender la linterna. Se ejecuta
//solo una vez, solo al principio de conectar el chip / linterna.
void setup() {
//la siguiente instrucción dice que la entrada/salida digital 1 se va
//a utilizar como salida. Con este salida se controlan los chips
//AMC7135 que dan coriente al led. Según la potencia del driver hay más
//o menos cantidad de chips AMC7135
pinMode(ledpin, OUTPUT); //ledpin, que es 1, es salida digital
} //fin setup()
// todo lo que esté dentro de loop() {} se ejecutará una y otra vez
void loop() {
//a contonuación decimos que la salida que controla el led está
//al máximo, 255 Es decir, la linterna está siempre en modo alto o high.
//los valores posible son 0 (apagado el led) hasta 255.
analogWrite(ledpin, 255);
}//fin loop()
A continuación figura una imagen del mismo código en el compilador de Arduino, Arduino IDE. Así quedaría el código en el compilador. Como ves, es el mismo aspecto del código de antes. Observa abajo del todo que la cantidad de memoria utilizada es 438 bytes, de total de 1024 que tiene el Attiny13.

El programa está comentado y leyendo esos comentarios es muy sencillo de entender. Como lo que se repite siempre, sin parar, al estar dentro de loop(), es analogWrite(ledpin, 255) la linterna recibe siempre ordenes de estar en modo máximo, puesto que el valor máximo de salida es 255. Así pues, la patilla 6 está indicando al driver que de toda la potencia que pueda.
El código, sin comentarios, para que se vea lo sencillo que es:
//PROGRAMA LINTERNA SOLO MODO ALT0
#define ledpin 1
void setup() {
pinMode(ledpin, OUTPUT); //ledpin, que es 1, es salida digital
}
void loop() {
analogWrite(ledpin, 255);
}