Вы находитесь на странице: 1из 5

1.

Contador del 0 al 9

2. Contador del 0 al 9 y regresa del 9 al 0


3. Modulación luz led por ancho de pulso PWM

 Modulación de ancho de pulso por PWM(pulse-width-modulation) que hace variar la intensidad


de luz en un led variando el ancho de pulso, puede utilizarse para otros dispositivos como
intensidad de luz, velocidad del motor, control de temperatura, etc…

 Circuito

 En el circuito los pines de módulo PWM son los que tienen el siguiente símbolo ~.
 Una vez realizado el circuito se utilizará el siguiente código en arduino, esté código hace que el
led empiece desde una luz baja hasta una intensidad alta, el archivo se llama:
Modulacionledconanchodepulso.ino

CONTADOR DEL 0 AL 999


 Contador del 0 al 999 utilizando tres displays de cátodo común, y utilizamos solo 7 conectores
en para controlar los valores de este mismo, y el control del encendido de cada display se hara
con transistores NPN.

 CÓDIGO

//Contador de tres Digitos de 7 segmentos por multiplexacion


int display[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
int retardo=6; // se declara el tiempo de retardo para el display que sera de 6 milisegundos
int var=0; // Valor del digito que se va a desplegar en cada display
int unidad=0; // cuenta las unidades
int decena=0; // cuenta las decenas
int centena=0; // cuenta las centenas
int conmutador=0; // multiplexacion de uno a otro display
int cont=0; // contador de ciclos de espera para cambiar de numero

void setup()
{
DDRD=0xFF; // Asigna todos los pines como salida

pinMode(9,OUTPUT); //activa el digito de la derecha (unidad)


pinMode(10,OUTPUT); //activa el digito 2 de la izquierda (decena)
pinMode(11,OUTPUT); //activa el digito 2 de la izquierda (decena)
}

void loop(){
delay(retardo); //tiempo que permanece encendido cada led

cont++; // incrementa el contador de ciclos en uno


if(cont==30){ // cada cuanto tiempo(ciclos cambia de numero)
cont=0 ; // inicializa el contador de ciclos
unidad=unidad+1; // incrementa la unidad, primer display
if(unidad >= 10){ // cuando la unidad llegue a 10 enciende el display de las decenas
decena=decena+1; // incrementa la decena, del segundo display
unidad=0; // regresa la unidad a cero
if (decena>=10){ // cuando la decena llegue a 10 se inicializa a cero la unidad y las decenas
decena=0;
unidad=0;
centena=centena+1; //enciende el display de las centenas
if (centena>=10){ //cuando la centena llegue a 10 se inicializa a cero todos los displays
centena=0;
}
}
}
}

if(conmutador==0){ //hace la multiplexacion conmutando entre los dos displays


digitalWrite(9,1); //enciende
digitalWrite(10,0); //apaga
digitalWrite(11,0); //apaga
PORTD=display[unidad]; //iguala la variable que escribe el numero n el display al valor de la unidad
conmutador=1; //cambia el conmutador para que en el siguiente ciclo cumpla la otra condicion
}
else if (conmutador==1){
digitalWrite(9,0); // apaga el
digitalWrite(10,1); //enciende
digitalWrite(11,0); //apaga
PORTD=display[decena]; //iguala la variable que escribe el numero en el display al valor de la decena
conmutador=2; //cambia el conmutador para que en el siguiente ciclo cumpla la otra condicion
}

else if (conmutador==2) {
digitalWrite(9,0); // apaga
digitalWrite(10,0); //apaga
digitalWrite(11,1); //enciende el izquierdo
PORTD=display[centena]; //iguala la variable que escribe el numero en el display al valor de la centena
conmutador=0; //cambia el conmutador para que en el siguiente ciclo cumpla la otra condicion
}
 SENSOR DE TEMPERATURA TMP36

 SENSOR TEMPERATURA LM35