Arduino
Arduino es una plataforma de hardware libre, basada en una placa "el arduino" y un programa desde el cual se programa la placa.
Se puede utilizar tanto las placas originales, como placas compatibles.
Hay una amplia variedad de posibilidades en cuanto a proyectos con estas placas.
En este trabajo hemos creado diversos tipos de programas utilizando esta herramienta:
Descarga de Arduino
El arduino consta de una placa base(Arduino) y otra sobre la que se conectarán los cables/leds/resistencias o cualquier otro elemento electrico/electronico sobre el cual trabajar.
ACTIVIDADES:
Primer Arduino: Un led
CODIGO:
const int pinLED= 13; //asignar variable led como 13
void setup() {
pinMode(pinLED, OUTPUT); //definir pin 13 como salida
}
void loop() {
digitalWrite(pinLED, HIGH); // encender LED
delay(50); // esperar un segundo
digitalWrite(pinLED, LOW); // apagar LED
delay(2000); // esperar un segundo
}
Arduino Semáforo:
Codigo:
void setup() {
pinMode (verde,OUTPUT);
pinMode (amarillo,OUTPUT);
pinMode (rojo,OUTPUT);
}
void loop() {
digitalWrite(verde,HIGH);
delay(4000);
digitalWrite(verde,LOW);
delay(500);
digitalWrite(amarillo,HIGH);
delay(4000);
digitalWrite(amarillo,LOW);
delay(500);
digitalWrite(rojo,HIGH);
delay(4000);
digitalWrite(rojo,LOW);
delay(500);
}
Juego de Botones:
CODIGO:
#define PIN_LED_1 11
#define PIN_BOTON_1 12
#define PIN_LED_2 2
#define PIN_BOTON_2 3
#define PIN_SALIDA 7
byte game_over;
void setup() {
pinMode(PIN_LED_1, OUTPUT);
pinMode(PIN_LED_1, INPUT);
pinMode(PIN_LED_2, OUTPUT);
pinMode(PIN_BOTON_2, INPUT);
pinMode(PIN_SALIDA, OUTPUT);
game_over=0;
digitalWrite(PIN_LED_1,LOW);
digitalWrite(PIN_LED_2,LOW);
digitalWrite(PIN_SALIDA,HIGH);
delay(random(10000));
digitalWrite(PIN_SALIDA,LOW);
}
void loop() {
byte boton_1=digitalRead(PIN_BOTON_1);
byte boton_2=digitalRead(PIN_BOTON_2);
if((boton_1==1)&&(game_over==0)){
digitalWrite(PIN_LED_1,HIGH);
game_over=1;
}
if((boton_2==1)&&(game_over==0)){
digitalWrite(PIN_LED_2,HIGH);
game_over=1;
}
delay(10);
}
Sensor luz:
#define PIN_LDR A0
#define PIN_LED 2
void setup() {
// put your setup code here, to run once:
pinMode(PIN_LDR, INPUT);
pinMode(PIN_LED, OUTPUT);
}
void loop() {
int ldr = analogRead(PIN_LDR);
if (ldr<=800){
digitalWrite(PIN_LED, HIGH);
}
if (ldr>800){
digitalWrite(PIN_LED,LOW);
}
}
Cuenta atras:
CODIGO:
#define Pin_a 3
#define Pin_b 4
#define Pin_c 7
#define Pin_d 6
#define Pin_e 5
#define Pin_f 2
#define Pin_g 1
void setup()
{
pinMode(Pin_a,OUTPUT);
pinMode(Pin_b,OUTPUT);
pinMode(Pin_c,OUTPUT);
pinMode(Pin_d,OUTPUT);
pinMode(Pin_e,OUTPUT);
pinMode(Pin_f,OUTPUT);
pinMode(Pin_g,OUTPUT);
}
void loop()
{
nueve();
delay(1000);
ocho();
delay(1000);
siete();
delay(1000);
seis();
delay(1000);
cinco();
delay(1000);
cuatro();
delay(1000);
tres();
delay(1000);
dos();
delay(1000);
uno();
delay(1000);
cero();
delay(1000);
}
void cero()
{
digitalWrite(Pin_a,LOW);
digitalWrite(Pin_b,LOW);
digitalWrite(Pin_c,LOW);
digitalWrite(Pin_d,LOW);
digitalWrite(Pin_e,LOW);
digitalWrite(Pin_f,LOW);
digitalWrite(Pin_g,HIGH);
}
void uno ()
{
digitalWrite(Pin_a,HIGH);
digitalWrite(Pin_b,LOW);
digitalWrite(Pin_c,LOW);
digitalWrite(Pin_d,HIGH);
digitalWrite(Pin_e,HIGH);
digitalWrite(Pin_f,HIGH);
digitalWrite(Pin_g,HIGH);
}
void dos()
{
digitalWrite(Pin_a,LOW);
digitalWrite(Pin_b,LOW);
digitalWrite(Pin_c,HIGH);
digitalWrite(Pin_d,LOW);
digitalWrite(Pin_e,LOW);
digitalWrite(Pin_f,HIGH);
digitalWrite(Pin_g,LOW);
}
void tres()
{
digitalWrite(Pin_a,LOW);
digitalWrite(Pin_b,LOW);
digitalWrite(Pin_c,LOW);
digitalWrite(Pin_d,LOW);
digitalWrite(Pin_e,HIGH);
digitalWrite(Pin_f,HIGH);
digitalWrite(Pin_g,LOW);
}
void cuatro()
{
digitalWrite(Pin_a,HIGH);
digitalWrite(Pin_b,LOW);
digitalWrite(Pin_c,LOW);
digitalWrite(Pin_d,HIGH);
digitalWrite(Pin_e,HIGH);
digitalWrite(Pin_f,LOW);
digitalWrite(Pin_g,LOW);
}
void cinco()
{
digitalWrite(Pin_a,LOW);
digitalWrite(Pin_b,HIGH);
digitalWrite(Pin_c,LOW);
digitalWrite(Pin_d,LOW);
digitalWrite(Pin_e,HIGH);
digitalWrite(Pin_f,LOW);
digitalWrite(Pin_g,LOW);
}
void seis()
{
digitalWrite(Pin_a,LOW);
digitalWrite(Pin_b,HIGH);
digitalWrite(Pin_c,LOW);
digitalWrite(Pin_d,LOW);
digitalWrite(Pin_e,LOW);
digitalWrite(Pin_f,LOW);
digitalWrite(Pin_g,LOW);
}
void siete()
{
digitalWrite(Pin_a,LOW);
digitalWrite(Pin_b,LOW);
digitalWrite(Pin_c,LOW);
digitalWrite(Pin_d,HIGH);
digitalWrite(Pin_e,HIGH);
digitalWrite(Pin_f,HIGH);
digitalWrite(Pin_g,HIGH);
}
void ocho()
{
digitalWrite(Pin_a,LOW);
digitalWrite(Pin_b,LOW);
digitalWrite(Pin_c,LOW);
digitalWrite(Pin_d,LOW);
digitalWrite(Pin_e,LOW);
digitalWrite(Pin_f,LOW);
digitalWrite(Pin_g,LOW);
}
void nueve()
{
digitalWrite(Pin_a,LOW);
digitalWrite(Pin_b,LOW);
digitalWrite(Pin_c,LOW);
digitalWrite(Pin_d,HIGH);
digitalWrite(Pin_e,HIGH);
digitalWrite(Pin_f,LOW);
digitalWrite(Pin_g,LOW);
}
Humedad y temperatura:
Para este caso necesitaremos tener una libreria instalada en nuestro dispositivo.
LIBRERIA_SENSOR_TEMPERATURA_Y_HUMEDAD
CODIGO:
#include <DHT11.h>
#include <DHT11.h>
int pin=2;
DHT11 dht11(pin);
void setup()
{
Serial.begin(9600);
}
void loop()
{
int err;
float temp, hum;
if((err = dht11.read(hum, temp)) == 0) // Si devuelve 0 es que ha leido bien
{
Serial.print("Temperatura: ");
Serial.print(temp);
Serial.print(" Humedad: ");
Serial.print(hum);
Serial.println();
}
else
{
Serial.println();
Serial.print("Error Num :");
Serial.print(err);
Serial.println();
}
delay(1000); //Recordad que solo lee una vez por segundo
}
Ultrasonidos:
CODIGO:
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;
}
Coche fantástico:
CODIGO:
int pin2 = 2;
int pin3 = 3;
int pin4 = 4;
int pin5 = 5;
int pin6 = 6;
int pin7 = 7;
int timer = 100;
void setup(){
pinMode(pin2, OUTPUT);
pinMode(pin3, OUTPUT);
pinMode(pin4, OUTPUT);
pinMode(pin5, OUTPUT);
pinMode(pin6, OUTPUT);
pinMode(pin7, OUTPUT);
}
void loop() {
digitalWrite(pin2, HIGH);
delay(timer);
digitalWrite(pin2, LOW);
delay(timer);
digitalWrite(pin3, HIGH);
delay(timer);
digitalWrite(pin3, LOW);
delay(timer);
digitalWrite(pin4, HIGH);
delay(timer);
digitalWrite(pin4, LOW);
delay(timer);
digitalWrite(pin5, HIGH);
delay(timer);
digitalWrite(pin5, LOW);
delay(timer);
digitalWrite(pin6, HIGH);
delay(timer);
digitalWrite(pin6, LOW);
delay(timer);
digitalWrite(pin7, HIGH);
delay(timer);
digitalWrite(pin7, LOW);
delay(timer);
digitalWrite(pin6, HIGH);
delay(timer);
digitalWrite(pin6, LOW);
delay(timer);
digitalWrite(pin5, HIGH);
delay(timer);
digitalWrite(pin5, LOW);
delay(timer);
digitalWrite(pin4, HIGH);
delay(timer);
digitalWrite(pin4, LOW);
delay(timer);
digitalWrite(pin3, HIGH);
delay(timer);
digitalWrite(pin3, LOW);
delay(timer);
}
Servo:
CODIGO:
#include <Servo.h>
Servo myservo; // crea el objeto servo
int pos = 0; // posicion del servo
void setup() {
myservo.attach(9); // vincula el servo al pin digital 9
}
void loop() {
//varia la posicion de 0 a 180, con esperas de 15ms
for (pos = 0; pos <= 180; pos += 1)
{
myservo.write(pos);
delay(15);
}
//varia la posicion de 0 a 180, con esperas de 15ms
for (pos = 180; pos >= 0; pos -= 1)
{
myservo.write(pos);
delay(15);
}
}
Relé:
CODIGO:
int rele=8;
void setup() {
pinMode(rele,OUTPUT);
}
void loop() {
digitalWrite(rele,HIGH);
delay(500);
digitalWrite(rele,LOW);
delay(500);
}
Comentarios
Publicar un comentario