martes, 16 de agosto de 2016

Desplazamiento de luces Led Arduino - Práctica 03

Desplazamiento de luces Led con Arduino

Programa:

/*
  Luces desplazamiento de registro "By Frank-Tattoo"
  Enciende un diodo LED durante un segundo, despues lo apaga un segundo encendiendo el siguiente.
 */

// Encendido y apagado de 6 LEDs

int ledPin1 = 12; // Define las salidas de los LED´s

int ledPin2 = 11;

int ledPin3 = 10;

int ledPin4 = 9;

int ledPin5 = 8;

int ledPin6 = 7;

void setup() { // Configura las SALIDAS

pinMode(ledPin1, OUTPUT); // declarar LEDs como SALIDAS

pinMode(ledPin2, OUTPUT);

pinMode(ledPin3, OUTPUT);

pinMode(ledPin4, OUTPUT);

pinMode(ledPin5, OUTPUT);

pinMode(ledPin6, OUTPUT);

digitalWrite(ledPin1, LOW); // Apaga los LEDs

digitalWrite(ledPin2, LOW);

digitalWrite(ledPin3, LOW);

digitalWrite(ledPin4, LOW);

digitalWrite(ledPin5, LOW);

digitalWrite(ledPin6, LOW);

}

void loop(){ //Bucle de Funcionamiento

digitalWrite(ledPin1, HIGH); // Apaga y enciende los leds el tiempo configurado

delay(1000);

digitalWrite(ledPin1, LOW);

delay(1000);

digitalWrite(ledPin2, HIGH);

delay(1000);

digitalWrite(ledPin2, LOW);

delay(1000);

digitalWrite(ledPin3, HIGH);

delay(1000);

digitalWrite(ledPin3, LOW);

delay(1000);

digitalWrite(ledPin4, HIGH);

delay(1000);

digitalWrite(ledPin4, LOW);

delay(1000);

digitalWrite(ledPin5, HIGH);

delay(1000);

digitalWrite(ledPin5, LOW);

delay(1000);

digitalWrite(ledPin6, HIGH);

delay(1000);

digitalWrite(ledPin6, LOW);

delay(1000);

}



Podemos quitar el tiempo de apagado, así según se apaga una luz, se enciende otra. El programa sería el siguiente:

Programa:

/*
  Luces desplazamiento de registro "By Frank-Tattoo"
  Enciende un diodo LED durante un segundo, despues lo apaga un segundo encendiendo el siguiente.
 */

// Encendido y apagado de 6 LEDs

int ledPin1 = 12; // Define las salidas de los LED´s

int ledPin2 = 11;

int ledPin3 = 10;

int ledPin4 = 9;

int ledPin5 = 8;

int ledPin6 = 7;

void setup() { // Configura las SALIDAS

pinMode(ledPin1, OUTPUT); // declarar LEDs como SALIDAS

pinMode(ledPin2, OUTPUT);

pinMode(ledPin3, OUTPUT);

pinMode(ledPin4, OUTPUT);

pinMode(ledPin5, OUTPUT);

pinMode(ledPin6, OUTPUT);

digitalWrite(ledPin1, LOW); // Apaga los LEDs

digitalWrite(ledPin2, LOW);

digitalWrite(ledPin3, LOW);

digitalWrite(ledPin4, LOW);

digitalWrite(ledPin5, LOW);

digitalWrite(ledPin6, LOW);

}

void loop(){ //Bucle de Funcionamiento

digitalWrite(ledPin1, HIGH); // Apaga y enciende los leds el tiempo configurado

delay(1000);

digitalWrite(ledPin1, LOW);

digitalWrite(ledPin2, HIGH);

delay(1000);

digitalWrite(ledPin2, LOW);

digitalWrite(ledPin3, HIGH);

delay(1000);

digitalWrite(ledPin3, LOW);

digitalWrite(ledPin4, HIGH);

delay(1000);

digitalWrite(ledPin4, LOW);

digitalWrite(ledPin5, HIGH);

delay(1000);

digitalWrite(ledPin5, LOW);

digitalWrite(ledPin6, HIGH);

delay(1000);

digitalWrite(ledPin6, LOW);

}


Frank.

lunes, 15 de agosto de 2016

Luz intermitente con resistencia en Arduino - Practica 02

Luz intermitente con resistencia en Arduino - Practica 02

Programa:

/*
  Luz Intermitente con resistencia "By Frank-Tattoo"
  Enciende un diodo LED durante un segundo, despues lo apaga un segundo.
 */

// asignamos el Pin 12, tiene un LED conectado en el pin 12 con una resistencia.

int led = 12;


void setup() {               
  // inicializamos el pin digital como salida.
  pinMode(led, OUTPUT);    
}

// loop realiza la rutina de reiniciar y finalizar continumente el proceso:
void loop() {
  digitalWrite(led, HIGH);   // Conecta el diodeo LED encendido (nivel de voltage alto)
  delay(1000);               // espera un segundo
  digitalWrite(led, LOW);    // desconecta el diodo LED turn the LED (nivel de voltage bajo)
  delay(1000);               // espera un segundo
}




 Modificando el programa de la siguiente forma (delay) conseguimos que el diodo led se encienda y se apague durante 3 segundos. (se puede apreciar al final del vídeo.

Programa:

/*
  Luz Intermitente con resistencia "By Frank-Tattoo"
  Enciende un diodo LED durante tres segundos, después lo apaga tres segundos.
 */

// asignamos el Pin 12, tiene un LED conectado en el pin 12 con una resistencia.

int led = 12;


void setup() {               
  // inicializamos el pin digital como salida.
  pinMode(led, OUTPUT);    
}

// loop realiza la rutina de reiniciar y finalizar continumente el proceso:
void loop() {
  digitalWrite(led, HIGH);   // Conecta el diodeo LED encendido (nivel de voltage alto)
  delay(3000);               // espera tres segundo
  digitalWrite(led, LOW);    // desconecta el diodo LED turn the LED (nivel de voltage bajo)
  delay(3000);               // espera tres segundo
}

Frank.

Luz intermitente con Arduino - Practica 01

Luz intermitente con Arduino

Programa:

/*
  Luz Intermitente "By Frank-Tattoo"
  Enciende un diodo LED durante un segundo, despues lo apaga un segundo.
 */

// asignamos el Pin 13, tiene un LED conectado en el pin 13 con una resistencia.

int led = 13;


void setup() {               
  // inicializamos el pin digital como salida.
  pinMode(led, OUTPUT);    
}

// loop realiza la rutina de reiniciar y finalizar continumente el proceso:
void loop() {
  digitalWrite(led, HIGH);   // Conecta el diodeo LED encendido (nivel de voltage alto)
  delay(1000);               // espera un segundo
  digitalWrite(led, LOW);    // desconecta el diodo LED turn the LED (nivel de voltage bajo)
  delay(1000);               // espera un segundo
}



Frank.

domingo, 20 de marzo de 2016

Sensor de ultrasonidos HC-SR04

El sensor de ultrasonidos HC-SR04 es uno de los sensores que se utilizan para medir 

distancias o superar obstáculos, entre otras funciones.

Para esta práctica vamos a utilizarlo para la medición de distancias. El sensor funciona enviando un ultrasonido a través de uno de la pareja de cilindros que compone el sensor (un transductor) y espera a que dicho sonido rebote sobre un objeto y vuelva, retorno captado por el otro cilindro.
El sensor HC-SR04 tiene un rango de distancias sensible entre 3cm y 3m con una precisión de 3mm.


El sensor consta de 4 pines: "VCC" conectado a la salida de 5V de la placa, "Trig" conectado al pin digital de la placa encargado de enviar el pulso ultrasónico, "Echo" al pin de entrada digital que recibirá el eco de dicho pulso y "GND" a tierra.


Programa:

/*
  Medidor de sistancia Ultrasonidos HC-SR04 "By Frank-Tattoo"
 */
const int EchoPin = 5;
const int TriggerPin = 6;
const int LedPin = 13;

void setup() {
    Serial.begin(9600);
    pinMode(LedPin, OUTPUT);
    pinMode(TriggerPin, OUTPUT);
    pinMode(EchoPin, INPUT);
}

void loop() {
    int cm = ping(TriggerPin, EchoPin);
    Serial.print("Distancia: ");
    Serial.println(cm);
    delay(1000);
}

int ping(int TriggerPin, int EchoPin) {
    long duration, distanceCm;
  
    digitalWrite(TriggerPin, LOW);  //para generar un pulso limpio ponemos a LOW 4us
    delayMicroseconds(4);
    digitalWrite(TriggerPin, HIGH);  //generamos Trigger (disparo) de 10us
    delayMicroseconds(10);
    digitalWrite(TriggerPin, LOW);
  
    duration = pulseIn(EchoPin, HIGH);  //medimos el tiempo entre pulsos, en microsegundos
  
    distanceCm = duration * 10 / 292/ 2;   //convertimos a distancia, en cm
    return distanceCm;
}

 
Esto es lo que se monitorizaría en el monitor Serie: 
 


Frank.


viernes, 15 de enero de 2016

Secuencia de las luces de un semaforo

Se trata de encender y apagar 3 LEDs colocados en las salidas 6, 7 y 8 (PIN6, PIN7 y PIN8) con una cadencia que configuramos. Las variables asignadas a cada led son ledPin1, ledPin2 y ledPin3.

El circuito de instalación sería el siguiente:



El programa sería el siguiente:

// Encendido y apagado de 3 LEDs
int ledPin1 = 6; // Define las salidas de los LED´s
int ledPin2 = 7;
int ledPin3 = 8;
void setup() { // Configura las SALIDAS
pinMode(ledPin1, OUTPUT); // declarar LEDs como SALIDAS
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
digitalWrite(ledPin1, LOW); // Apaga los LEDs
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
}
void loop(){ //Bucle de Funcionamiento
digitalWrite(ledPin1, HIGH); // Apaga y enciende los leds el tiempo configurado
delay(16000);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
delay(200);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, HIGH);
delay(16000);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin2, HIGH);
delay(200);
digitalWrite(ledPin2, LOW);
}

En el siguiente vídeo se puede apreciar el montaje de la práctica y la muestra del funcionamiento en placa Prto-Board.





Frank


miércoles, 18 de noviembre de 2015

Arduino 7 Segment LED Display and Counter

Arduino 7 Segment LED Display and Counter


This is a simple 0 to 9 counter circuit constructed using Arduino! Here, a common cathode 7-segment LED display is connected to Arduino for displaying the digits.
The whole circuit can be powered from a standard 9V PP3/6F22 battery, or from any suitable Arduino power adaptor.



The seven segment display is infact a very simple device. It is a combination of 8 LEDs (the decimal point -DP- is the 8th), which can be arranged so that different combinations can be used to make numerical digits.
Details of a common cathode type 7 segment LED display is shown here. Note that pins 3 and 8 of the display is the cathode terminals.


Just follow the schematic circuit diagram to make the entire project.
Arduino pins 2, 3, 4, 5, 6, 7 and 8 should go to Display pins 7, 6, 4, 2, 1, 9 and 10 in correct order. In case of any doubt refer this table.

arduino to display pins

Connecting the display pins directly to Arduino I/O pins is not a good practice. For testing purpose only one 330 Ohm resistor (R2) is added between ground rail (0V) and the common cathode pins (3 & 8). It is better to directly connect pins 3 & 8 of the display to ground rail. Next add a 330 Ohm resistor between each of the other connections to the Arduino.

Programming

int pausa=1000; 

void setup()
{
  pinMode(2, OUTPUT);  
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
}

void display (int a, int b, int c, int d, int e, int f, intg)
{
  digitalWrite (2,a);   
  digitalWrite (3,b);   
  digitalWrite (4,c);
  digitalWrite (5,d);
  digitalWrite (6,e);
  digitalWrite (7,f);
  digitalWrite (8,g);
}

void loop() 
{
  display (1,1,1,1,1,1,0); //write 0
  delay(pausa);
  display (0,1,1,0,0,0,0); //write 1
  delay(pausa);
  display (1,1,0,1,1,0,1); //write 2
  delay(pausa);
  display (1,1,1,1,0,0,1); //write 3
  delay(pausa);
  display (0,1,1,0,0,1,1); //write 4
  delay(pausa);
  display (1,0,1,1,0,1,1); //write 5
  delay(pausa);
  display (1,0,1,1,1,1,1); //write 6
  delay(pausa);
  display (1,1,1,0,0,0,0); //write 7
  delay(pausa);
  display (1,1,1,1,1,1,1); //write 8
  delay(pausa);
  display (1,1,1,0,0,1,1); //write 9
  delay(pausa);
}

Frank.

martes, 17 de noviembre de 2015

Control de 2 relés a través de web.

Control de 2 relés por página web

Vamos a realizar una practica para el control de 2 reles conectandonos por una tablet, móvil o pc.
Para realizar dicha páctica vamos a utilizar lo siguiente:
      - Placa Arduino uno.
      - Placa Ethernet.
      - Placa de 2 reles.
      - Cables para las conexiones.

Para la instalación, montamos la placa Ethernet en la placa Arduino y cableamos con la de reles de la siguiente forma:



A continuación cargamos en nuestro Arduino el siguiente programa:

/*
    Arduino Ethernet Shield
Control Remoto de 2 Reles by Frank  
*/

#include <SPI.h>
#include <Ethernet.h>

byte mac[]={0xDE,0xAD,0xBE,0xEF,0xFE,0xED}; //MAC
IPAddress ip(192,168,1,9);
EthernetServer servidor(80);

int PIN_LED1=5;
String readString1=String(30);
String state1=String(3);
int PIN_LED2=6;
String state2=String(3);

void setup()
{
 Ethernet.begin(mac, ip);
 servidor.begin();

 pinMode(PIN_LED1,OUTPUT);
 digitalWrite(PIN_LED1,LOW);
 state1="OFF";
 digitalWrite(PIN_LED2,LOW);
 pinMode(PIN_LED2,OUTPUT);
 state2="OFF";

}

void loop()
{
 EthernetClient cliente= servidor.available();

 if(cliente)
 {
   boolean lineaenblanco=true;
   while(cliente.connected())
   {
     if(cliente.available())
     {
       char c=cliente.read();
       if(readString1.length()<30)
       {
         readString1.concat(c);
       
       }
       if(c=='\n' && lineaenblanco)
       {
         int LED1 = readString1.indexOf("LED1=");
         int LED2 = readString1.indexOf("LED2=");
         
         if(readString1.substring(LED1,LED1+6)=="LED1=T")
         {
           digitalWrite(PIN_LED1,HIGH);
           state1="ON";
         } else if (readString1.substring(LED1,LED1+6)=="LED1=F")
         {
           digitalWrite(PIN_LED1,LOW);
           state1="OFF";
         }
         if(readString1.substring(LED2,LED2+6)=="LED2=T")
         {
           digitalWrite(PIN_LED2,HIGH);
           state2="ON";
         } else if (readString1.substring(LED2,LED2+6)=="LED2=F")
         {
           digitalWrite(PIN_LED2,LOW);
           state2="OFF";
  }
     
         } 
         //Cabecera HTTP estándar
         cliente.println("HTTP/1.1 200 OK");
         cliente.println("Content-Type: text/html");
         cliente.println();        
         //Página Web en HTML
         cliente.println("<html>");
         cliente.println("<head>");
         cliente.println("<title>Control 2 Reles</title>");
         cliente.println("<h2><font color='#2076CD'>Control Remoto de Reles v1.0</font color></div></h2>");
         cliente.print("<body bgcolor='#149195'>");
         cliente.println("</head>");
         cliente.println("<h3>RELE 1</h3>");
         cliente.println("<input type=submit value=OFF style=width:50px;height:25px onClick=location.href='./?LED1=T\'>");
         cliente.println("<input type=submit value=ON style=width:50px;height:25px onClick=location.href='./?LED1=F\'>");
         cliente.print("Estado: ");
         cliente.print(state1);
         cliente.println("<h3>RELE 2</h3>");
         cliente.println("<input type=submit value=OFF style=width:50px;height:25px onClick=location.href='./?LED2=T\'>");
         cliente.println("<input type=submit value=ON style=width:50px;height:25px onClick=location.href='./?LED2=F\'>");
         cliente.print("Estado: ");
         cliente.print(state2);
         cliente.println("</body>");
         cliente.println("</html>");
         cliente.stop();
         readString1="";
       }
     }
   }
  }
 }


Conectamos la toma Ethernet del Arduino al Router y desde el móvil, tablet o Pc conectado a la wifi o red de dicho router abrimos un navegador y marcamos la ip 192.168.1.9 y le damos al enter.

Vemos que nos aparece la siguiente pantalla:



Interactuando sobre los botones de ON y OFF conseguimos apagar y encender los reles, los cuales se pueden utilizar para conectar una luz, un motor, etc.