Você está na página 1de 4

Triac

/*

PaperDimmer

Regula la intensidad de carga (luz) en función del estado de un potenciómetro.

EL CIRCUITO

(instrucciones de montaje en el documento: PaperDimmerPCBEj_xx.xxx)

* Potenciómetro (10K lin)

- Patilla central del pot a entrada análogica 0

- Una patilla lateral a masa (GND)

- La otra patilla lateral a 5V

* LED conectado entre el pin 13 y masa.

* Nota: La mayoría de las placas Arduino tienen un led conectado al pin 13.

* Papertrino

Es necesario conectar las patillas de:

Arduino PaperDimmer

D2 D1

D3 D2

D4 D3

GND GND

Creado el 25 de Junio de 2010

Por Iñigo Zuluaga

http://txapuzas.blogspot.com/

*/

// DEFINICION ENTRADAS/SALIDAS
int LedPin = 13; // LED conectado en placa al pin digital 13

int D1 = 2; // Entrada Led1 del PaperDimmer

int D2 = 3; // Entrada Led2 del PaperDimmer

int D3 = 4; // Entrada Led3 del PaperDimmer

int PotPin = 0; // La entrada analógica 0 para el potenciometro

// DEFINICION DE VARIABLES

int Temp = 100; // Espera siempre mayor que 20 (50Hz => 20ms)

int ValorPot = 0; // Valor leído del potenciómetro

int ValPaperDimmer = 0; // Valor transmitido al PaperDimmer

boolean ValLedPin = HIGH; // Valor de la salida LedPin13 del Arduino

int ValD1 = 0; // Valor de la entrada D1 del PaperDimmer

int ValD2 = 0; // Valor de la entrada D2 del PaperDimmer

int ValD3 = 0; // Valor de la entrada D3 del PaperDimmer

// FUNCION INICIAL

void setup() {

// Inicializar las salidas:

pinMode(LedPin, OUTPUT);

pinMode(D1, OUTPUT);

pinMode(D2, OUTPUT);

pinMode(D3, OUTPUT);

// CICLO PRINCIPAL

void loop() {

ValLedPin=!ValLedPin; // invierte el valor del pin13


digitalWrite(LedPin,ValLedPin); // y muestra que el programa funciona

delay(Temp);

ValorPot = analogRead(PotPin); // Lee el valor del potenciómetro

ValPaperDimmer = ValorPot/(1024/7); // Escala el valor del pot a 0-7

ValD1 = ValPaperDimmer & 1; // Enmascara el valor del triac con 001

if (ValD1 == 1) { // si tiene un valor de 1

digitalWrite(D1,HIGH); // activa la entrada Led1 del Papertrino

else { // si el valor es distinto a 1

digitalWrite (D1,LOW); // desactiva Led1

ValD2=ValPaperDimmer & 2; // Enmascara el valor del triac con 010

if (ValD2 == 2) { // si tiene un valor de 2

digitalWrite (D2,HIGH); // activa la entrada Led2 del Papertrino

else { // si el valor es distinto a 2

digitalWrite(D2,LOW); // desactiva Led2

ValD3=ValPaperDimmer & 4; // Enmascara el valor del triac con 100

if (ValD3 == 4) { // si tiene un valor de 4

digitalWrite (D3,HIGH); // activa la entrada Led3 del papertrino

else { // si el valor es distinto a 4

digitalWrite (D3,LOW); // desactiva Led3