viernes, 29 de marzo de 2019

Practtica 4 PULSADOR

Experimento con el pulsador

En este experimento lo que hemos propuesto es que mediante el pulsador podamos alternar el buzzer y el led. 
Un botón o pulsador es un dispositivo utilizado para activar alguna función. Los botones son por lo general activados al ser pulsados, normalmente con un dedo. Un
botón de un dispositivo electrónico funciona por lo general como un interruptor
eléctrico, es decir en su interior tiene dos contactos, si es un dispositivo NA
(normalmente abierto) o NC (normalmente cerrado), con lo que al pulsarlo se activará la función inversa de la que en ese momento este realizando.

Aqui podeis ver un video y el esquema de Fritzing, ademas el codigo de programacion para que lo modifiqueis a vuestro gusto:
















const int pulsador = 6; 
const int led = 12;
const int buzzer = 9;
int encendido = 0;

void setup() {

 pinMode(led, OUTPUT);

 pinMode(pulsador, INPUT);
 
 pinMode(buzzer, OUTPUT);
}

void loop() {
if (digitalRead(pulsador) == LOW) {
if (encendido == 0) {
digitalWrite(led, LOW);
digitalWrite(buzzer, LOW);
encendido = 1;

} 
else if (encendido == 1){
digitalWrite(led, HIGH);
digitalWrite(buzzer, HIGH);
encendido = 0;
} 
}
delay(100);
}

martes, 26 de marzo de 2019

Practica 3 CONSOLA

Experimento con consola
En este experimento no va muy alla de los otros anteriores ya que solo se le añade una funcion para que nos diga que luz, buzzero otro objeto esta encendido, se llama Monitor Serial

Podemos utilizar la consola del programa de arduino para recibir o mandar información al ordenador:. Para hacer funcionar la consola es necesario añadir Serial.begin(9600); en el void setup para abrir la consola y Serial.println() para escribir en ella. La consola se abre en Herramientas-Monitor serie.

Para ver una demostracion de la consola hemos hecho un video para que lo podais ver. Ademas de una foto y esquema del proyecto con el que hemos trabajado.















/* luces con consola
 Leds conectados a pines 3 y 4 */
int verde = 3;
int amarillo = 4
int rojo = 0;
void setup()
{
pinMode(verde, OUTPUT);
pinMode(amarillo, OUTPUT)
pinMode(rojo, OUTPUT);
 Serial.begin(9600); //inicializa la comunicación Serial
}
void loop()
{
Serial.println("Luces - Inicio"); //Escribe el texto
digitalWrite(verde, HIGH);
Serial.println("Luz - Verde"); //Escribe el texto
delay(3000);
digitalWrite(verde, LOW);
digitalWrite(amarillo, HIGH); 
Serial.println("Luz - Amarilla"); //Escribe texto
delay(800);
digitalWrite(rojo, LOW);
digitalWrite(rojo, HIGH); 
Serial.println("Luz - roja"); //Escribe texto
delay(800);
digitalWrite(rojo, LOW);
} 

miércoles, 20 de marzo de 2019

Practica 2 BUZZER

Melodía de Star Wars con Buzzer

Hoy os traemos el siguiente experimento con el buzzer ( un zumbador piezoeléctrico (buzzer en inglés), es un transductor electroacústico que produce un sonido o zumbido continuo o intermitente de un mismo tono. Sirve como mecanismo de señalización o aviso, y son utilizados en múltiples sistemas como en automóviles o en electrodomésticos ). 
Su construcción consta de dos elementos, un electroimán y una lámina metálica de acero. El zumbador puede ser conectado a circuitos integrados especiales para así lograr distintos tonos o en nuestro caso controlarlo mediante Arduino UNO.
Cuando se acciona, la corriente pasa por la bobina del electroimán y produce un campo magnético variable que hace vibrar la lámina de acero sobre la armadura produciéndose de esta manera el sonido. Variando la frecuencia de vibración de la lámina podemos conseguir multitud de tonos en un mismo zumbador, además si esos tonos les aplicamos durante una duración determinada podremos conseguir reproducir cualquier tipo de canción con un parecido razonable, aunque este proceso es bastante complejo.Cuando encendemos el programa suena la cancion de Star Wars.
Aquí os dejo el una imagen de fritzing para que os sea mas facil realizar la tarea, y a continuacion un video y una imagen de como funciona.




          





                                 

Por último teneis el codigo de programación el cual no es muy dificil, basicamente es como el del semaforo que lo teneis mas abajo. 
Todo siempre hay que escribirlo con puntos, comas, puntos y comas, comillas... para que el programa funcione.


#define  c3    7634
#define  d3    6803
#define  e3    6061
#define  g3    5102
#define  f3    5714
#define  a3    4545
#define  c4    3816    // 261 Hz
#define  b3    4049
#define  d4    3401    // 294 Hz
#define  e4    3030    // 329 Hz
#define  f4    2865    // 349 Hz
#define  g4    2551    // 392 Hz
#define  a4    2272    // 440 Hz
#define  a4s   2146
#define  b4    2028    // 493 Hz
#define  c5    1912    // 523 Hz
#define  d5    1706
#define  d5s   1608
#define  e5    1517    // 659 Hz
#define  f5    1433    // 698 Hz
#define  g5    1276
#define  a5    1136
#define  b5    1012
#define  a5s   1073
#define  c6    955
         #define  R     0      
// Melodia 1 tono imperial
int melodia1[] = { a4, R, a4, R, a4, R, f4, R, c5, R, a4, R, f4, R, c5, R, a4, R, e5, R, e5, R, e5, R, f5, R, c5, R, g5, R, f5, R, c5, R, a4, R};
int beats1[] = { 50, 20, 50, 20, 50, 20, 40, 5, 20, 5, 60, 10, 40, 5, 20, 5, 60, 80, 50, 20, 50, 20, 50, 20, 40, 5, 20, 5, 60, 10, 40, 5, 20, 5, 60, 40};
// Melodia 2 de star wars
int melodia2[] = { f4, f4, f4, a4s, f5, d5s, d5, c5, a5s, f5, d5s, d5, c5, a5s, f5, d5s, d5, d5s, c5};
int beats2[] = { 21, 21, 21, 128, 128, 21, 21, 21, 128, 64, 21, 21, 21, 128, 64, 21, 21, 21, 128 };
int MAX_COUNT = sizeof(melodia1) / 2;
long tempo = 10000;
int pause = 1000;
int rest_count = 50;
int tonoM = 0;
int beat = 0;
long duracion = 0;
int potVal = 0;
int speakerOut = 9;
int led = 6;
void setup() {
pinMode(speakerOut, OUTPUT);
pinMode(led, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Melodia1
for (int i=0; i<MAX_COUNT; i++) {
tonoM = melodia1[i];
duracion = beat * tempo;
beat = beats1[i];
playTone();
delayMicroseconds(pause);
}
// Melodia2
MAX_COUNT = sizeof(melodia2) / 2;
for (int i = 0; i < MAX_COUNT; i++) {
tonoM = melodia2[i];
duracion = beat * tempo;
beat = beats2[i];
playTone();
delayMicroseconds(pause);
}
}
void playTone() {
long elapsed_time = 0;
if (tonoM > 0) {
          digitalWrite(led,HIGH);
while (elapsed_time < duracion) {
digitalWrite(speakerOut,HIGH);
delayMicroseconds(tonoM / 2);
digitalWrite(speakerOut, LOW);
delayMicroseconds(tonoM / 2);
elapsed_time += (tonoM);
       }
digitalWrite(led,LOW);
}
else {
for (int j = 0; j < rest_count; j++) {
delayMicroseconds(duracion);
}
}
}

miércoles, 13 de marzo de 2019

Practica 1 ARDUINO SEMAFORO

Semáforo con luces en Arduino

En el experimento que vamos a explicar en los siguientes apéndices de este documento, hemos recreado un semaforo mediante unas luces: roja, amarilla y verde. Cuando cargamos el progama en la placa las luces se van alternando como si se tratara de dicho semaforo.



Aqui podeis ver el esquema de fritzing que os hara la tarea mas facil, y a continuacion una foto de nuestro proyecto. 



Para que podais ver un video tutorial de como funciona los leds y ademas no puede faltar el codigo de programación.





El progama de este experimento es muy sencillo, has de fijarte en la primera parte de introducir la posicion del led, tal que: "int led = 13"... Una vez esto, hay que escribir "void setup" donde declaramos las salidas de corriente del arduino, que se refieren a los numeros que le hemos introdicido a los leds. Por esos numeros saldran las corrientes que permitiran encender los leds.
El siguiente paso es indicar mediante "void loop" cuando los leds van a encendere y apagarse, como tenemos en el ejmeplo de abajo: "digitalwrite(...) indica que leds va encender o apagar; delay indica el tiempo que va a realizar esta accion.
Todo siempre hay que escribirlo con puntos, comas, puntos y comas, comillas... para que el programa funcione.









/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.
 
  This example code is in the public domain.
 */
 
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
int led2 = 8;
int led3 = 10;
// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);
   pinMode(led2, OUTPUT);
   pinMode(led3, OUTPUT);     
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(2000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(0);               // wait for a second
    digitalWrite(led2, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(2000);               // wait for a second
  digitalWrite(led2,LOW);    // turn the LED off by making the voltage LOW
  delay(0);               // wait for a second
      digitalWrite(led3, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(2000);               // wait for a second
  digitalWrite(led3,LOW);    // turn the LED off by making the voltage LOW
  delay(0);               // wait for a second
}