Código
Encender leds con el medidor de distancias
const int EchoPin = 5;
const int TriggerPin = 6;
int LED_1 = 7;
int LED_2 = 8;
int LED_3 = 9;
void setup() {
Serial.begin(9600);
pinMode(TriggerPin, OUTPUT);
pinMode(EchoPin, INPUT);
pinMode(LED_1, OUTPUT);
pinMode(LED_2, OUTPUT);
pinMode(LED_3, OUTPUT);
}
void loop() {
int Distancia;
int cm = ping(TriggerPin, EchoPin);
Serial.print("Distancia: ");
Serial.println(cm);
delay(1000);
if( cm < 20)
{
digitalWrite(LED_1, HIGH);
digitalWrite(LED_2, LOW);
digitalWrite(LED_3, LOW);
}
if(cm > 20 && cm <30)
{
digitalWrite(LED_1,LOW);
digitalWrite(LED_2, HIGH);
digitalWrite(LED_3, LOW);
}
if(cm > 30)
{
digitalWrite(LED_1,LOW);
digitalWrite(LED_2, LOW);
digitalWrite(LED_3, HIGH);
}
}
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;
}
Sensor ultrasonidos
const int EchoPin = 5;
const int TriggerPin = 6;
void setup() {
Serial.begin(9600);
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;
}
Servo
#include <Servo.h> //Include the Servo Library
int degree=0;
String words;
Servo servo1; // "Servos" objects are created
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println("Servos - Arduino");
//servo1.attach(5); //Default
servo1.attach(5,600,2400);
servo1.write(0);
}
void loop() {
// put your main code here, to run repeatedly:
while (Serial.available()) { // Read the value sent by the Serial Port
delay(5);
char c = Serial.read(); // Read the characters
words += c; // Convert Characters to character string
}
if (words.length()>0){
degree = words.toInt(); // Convert character string to integers
Serial.print(degree); //Send value in Degrees
Serial.println(" Grados");
delay(5);
servo1.write(degree); // Ajuste de 512 vueltas a los 360 grados
while(servo1.read()<degree-3)
{Serial.println("Desplazando...");}
}
words = ""; // Initialize the string of characters received
}
Enviar mensaje a la consola (mejorado)
/* -------------------------------------- Escritura serial -------------------------------------- Consiste en escribir por la pantalla del computador (consola serial) una letra a , la primera vez que se escriba un LED se enciende, si se vuelve a escribir a por segunda vez el LED se apaga. */
//--------------------------------------------------
//Declara puertos de entradas y salidas y variables
int led = 13; //Pin donde se encuentra el LED, salida
int led2 = 12;
int led3 = 11;
char leer; //Variable donde se almacena la letra
boolean prendido=false; //Estado LED la primera vez, apagado
boolean prendido2=false;
boolean prendido3=false;
//------------------------------------
//Funcion principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
Serial.begin(9600); //Inicia comunicación serial
pinMode(led, OUTPUT); //Configurar el LED como una salida
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}
//------------------------------------
//Funcion ciclicla
//------------------------------------
void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
//Guardar en una variable el valor de la consola serial
leer=Serial.read(); // Si es la letra 'a' y además el LED está apagado
if ( (leer=='a') && (prendido==false) )
{
digitalWrite(led,HIGH); // Enciende el LED
prendido=true; // Actualiza el estado del LED
}
// Si es la letra 'a' y además el LED está encendido
else if ( (leer=='a') && (prendido==true) )
{
digitalWrite(led,LOW); // Apaga el LED
prendido=false; // Actualiza el estado del LED
}
if ( (leer=='s') && (prendido2==false) )
{
digitalWrite(led2,HIGH); // Enciende el LED
prendido2=true; // Actualiza el estado del LED
}
// Si es la letra 's' y además el LED está encendido
else if ( (leer=='s') && (prendido2==true) )
{
digitalWrite(led2,LOW); // Apaga el LED
prendido2=false; // Actualiza el estado del LED
}
if ( (leer=='d') && (prendido3==false) )
{
digitalWrite(led3,HIGH); // Enciende el LED
prendido3=true; // Actualiza el estado del LED
}
// Si es la letra 'd' y además el LED está encendido
else if ( (leer=='d') && (prendido3==true) )
{
digitalWrite(led3,LOW); // Apaga el LED
prendido3=false; // Actualiza el estado del LED
}
} //Fin programa
Potenciómetro para encender LEDS
long valor;
//la salida de corriente de los LEDs
int LED_1 = 2;
int LED_2 = 3;
int LED_3 = 4;
void setup() {
//Iniciamos el motor serial
Serial.begin(9600);
pinMode(LED_1, OUTPUT);
pinMode(LED_2, OUTPUT);
pinMode(LED_3, OUTPUT);
}
void loop()
{
int valor = analogRead(A0);
Serial.print("El valor es = ");
Serial.println(valor);
delay(200);
if( valor > 0 && valor < 300)
{
digitalWrite(LED_1, HIGH);
digitalWrite(LED_2, LOW);
digitalWrite(LED_3, LOW);
Serial.print("amarillo ");
}
if ( valor > 300 && valor < 600)
{
digitalWrite(LED_1, LOW);
digitalWrite(LED_2, HIGH);
digitalWrite(LED_3, LOW);
Serial.print("verde ");
}
if (valor > 600 )
{
digitalWrite(LED_1, LOW);
digitalWrite(LED_2, LOW);
digitalWrite(LED_3, HIGH);
Serial.print("rojo ");
}
}
LED CON BOTÓN
void setup() {
pinMode(13,OUTPUT);
pinMode(4,INPUT);
}
void loop() {
if (digitalRead(4)==HIGH) {
digitalWrite(13, HIGH);
}
else {
digitalWrite(13, LOW);
}
}
Semáforo
int ledrojo = 13;