martes, 5 de diciembre de 2017

Práctica 16

En esta práctica conoceremos el funcionamiento del servomotor y los usos de este mismo. Este sensor solo se mueve por grados así que conoceremos cuales son estos. 

Materiales:

-Arduino
-Protoboard
-Motor reductor 
-Potenciometro 50k ohm
-Cable Dupont 

Código:

#include<Servo.h>
Servo myServo;
int const PotPin=A5;
int PotVal;
int angle;
void setup(){
myServo.attach(9);
Serial.begin(9600);
}
void loop(){
PotVal=analogRead(PotPin);
Serial.print("PotVal:");
Serial.print(PotVal);
angle=map(PotVal,0,1023,0,179);
Serial.print ("angle= ");
Serial.println (angle);
myServo.write(angle);
delay (15);
}

                                           



                                                   



Práctica 15

Vamos a realizar una práctica en la cual utilizaremos el LED RGB  que es el que tiene la capacidad de cambiar su color de iluminación. Aprenderemos a como programarlo y poder obtener su amplia variedad de colores. 

Materiales: 

-Arduino
-Protoboard
-LED RGB
-Cable Dupont
- 3 resistencias de 220 ohm

Código: 

#define pinLed1 11 // Pin 11 a R
#define pinLed2 10 // Pin 10 a G
#define pinLed3 9 // Pin 10 a B
void setup()
{
pinMode(pinLed1, OUTPUT);
pinMode(pinLed2, OUTPUT);
pinMode(pinLed3, OUTPUT);
}
void loop() {
// Verde
digitalWrite(pinLed1, LOW);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, LOW);
delay(500);
// Azul
digitalWrite(pinLed1, LOW);
digitalWrite(pinLed2, LOW);
digitalWrite(pinLed3, HIGH);
delay(500);

digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, LOW);
digitalWrite(pinLed3, LOW);
delay(500);
//Violeta
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, LOW);
digitalWrite(pinLed3, HIGH);
delay(500);
//Amarillo
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, LOW);
delay(500);
//Azul Marino
digitalWrite(pinLed1, LOW);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
delay(500);
//Blanco
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed3, HIGH);
delay(500);
// Negro 
digitalWrite(pinLed1, LOW);
digitalWrite(pinLed2, LOW);
digitalWrite(pinLed3, LOW);
delay(500);
}

                                         


                                       











Práctica 14

para esta práctica veremos el funcionamiento de un motor a pasos y sus principales usos, de igual manera lo compararemos con el motor DC.

Materiales: 

-Arduino
-Protoboard
-Motor a pasos
-Cables Dupont
-1 UNL2003.

Codigo:

int retardo=5;          // Tiempo de retardo en milisegundos (Velocidad del Motor)
int dato_rx;            // valor recibido en grados
int numero_pasos = 0;   // Valor en grados donde se encuentra el motor
String leeCadena;       // Almacena la cadena de datos recibida

void setup() {               
Serial.begin(9600);     // inicializamos el Monitor serial
pinMode(11, OUTPUT);    // Pin 11 conectar a IN4
pinMode(10, OUTPUT);    // Pin 10 conectar a IN3
pinMode(9, OUTPUT);     // Pin 9 conectar a IN2
pinMode(8, OUTPUT);     // Pin 8 conectar a IN1
}

void loop() {
  while (Serial.available()) {    // Leer el valor enviado por el Monitor serial
    delay(retardo);
    char c  = Serial.read();     // Lee los caracteres
    leeCadena += c;              // Convierte Caracteres a cadena de caracteres
  } 
  if (leeCadena.length()>0){      
        dato_rx = leeCadena.toInt();   // Convierte Cadena de caracteres a Enteros
         Serial.print(dato_rx);         // Envia valor en Grados
         Serial.println(" Grados");
        delay(retardo);
        dato_rx = (dato_rx * 1.4222222222); // Ajuste de 512 vueltas a los 360 grados
  } 

   while (dato_rx>numero_pasos){   // Girohacia la izquierda en grados
       paso_izq();
       numero_pasos = numero_pasos + 1;
   }
   while (dato_rx<numero_pasos){   // Giro hacia la derecha en grados
        paso_der();
        numero_pasos = numero_pasos -1;
   }
  leeCadena = "";   // Inicializamos la cadena de caracteres recibidos
  apagado();         // Apagado del Motor para que no se caliente
}

void paso_der(){         // Pasos a la derecha
 digitalWrite(11, LOW);
 digitalWrite(10, LOW); 
 digitalWrite(9, HIGH); 
 digitalWrite(8, HIGH); 
   delay(retardo);
 digitalWrite(11, LOW);
 digitalWrite(10, HIGH); 
 digitalWrite(9, HIGH); 
 digitalWrite(8, LOW); 
   delay(retardo);
 digitalWrite(11, HIGH);
 digitalWrite(10, HIGH); 
 digitalWrite(9, LOW); 
 digitalWrite(8, LOW); 
  delay(retardo);
 digitalWrite(11, HIGH);
 digitalWrite(10, LOW); 
 digitalWrite(9, LOW); 
 digitalWrite(8, HIGH); 
  delay(retardo); 
}

void paso_izq() {        // Pasos a la izquierda
 digitalWrite(11, HIGH);
 digitalWrite(10, HIGH); 
 digitalWrite(9, LOW); 
 digitalWrite(8, LOW); 
  delay(retardo);
 digitalWrite(11, LOW);
 digitalWrite(10, HIGH); 
 digitalWrite(9, HIGH); 
 digitalWrite(8, LOW); 
  delay(retardo);
 digitalWrite(11, LOW);
 digitalWrite(10, LOW); 
 digitalWrite(9, HIGH); 
 digitalWrite(8, HIGH); 
  delay(retardo);
 digitalWrite(11, HIGH);
 digitalWrite(10, LOW); 
 digitalWrite(9, LOW); 
 digitalWrite(8, HIGH); 
  delay(retardo);
}
       
void apagado() {         // Apagado del Motor
 digitalWrite(11, LOW);
 digitalWrite(10, LOW); 
 digitalWrite(9, LOW); 
 digitalWrite(8, LOW); 
 }














Práctica 13

Para esta práctica seguiremos utilizando el sensor ultrasonico para medir la distancia solo que en este caso vamos a utilizar tambien la pantalla LCD para ver los resutados en ella. 

Materiales:
- Arduino
-Protoboard
-Sensor ultrasonico
-Pantalla LCD
-Cable Dupont
-Potenciometro 

codigo: 

#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
const int EchoPin = 3;
const int TriggerPin = 5;
const int LedPin = 13;
void setup() {
  Serial.begin(9600);
  lcd.begin(16,2);
  pinMode(LedPin, OUTPUT);
  pinMode(TriggerPin, OUTPUT);
  pinMode(EchoPin, INPUT);
}

void loop() {
  int cm = ping(TriggerPin, EchoPin);
  Serial.print("Distancia: ");
  Serial.println(cm);
  delay(1000);
  lcd.write("Distancia");
lcd.setCursor(0,1);
lcd.write("d= ");
lcd.print(cm);
lcd.write(" cm");
}
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 ent  re pulsos, en microsegundos
  distanceCm = duration * 10 / 292 / 2; //convertimos a dist  ancia, en cm
  return distanceCm;
}
















Práctica 12

Para esta práctica vamos a utilizar el sensor de temperatura LM35 y utilizaremos el monitor serial para ver los datos que se obtuvieron, nuevamente utilizaremos la pantalla LCD para observar los datos en ella. 

Material:

-Arduino 
-Protoboard
-Sensor LM35
-Pantalla LCD
-Cables Dupont 

Codigo: 

float tempC; // Variable para almacenar el valor obtenido del sensor (0 a 1023)
int pinLM35 = A0; // Variable del pin de entrada del sensor (A0)
void setup() {
// Configuramos el puerto serial a 9600 bps
Serial.begin(9600);
}
void loop() {
// Con analogRead leemos el sensor, recuerda que es un valor de 0 a 1023
tempC = analogRead(pinLM35);
// Calculamos la temperatura con la fórmula
tempC = (5.0 * tempC * 100.0)/1024.0;
// Envia el dato al puerto serial
Serial.print(tempC);
// Salto de línea
Serial.print("\n");
// Esperamos un tiempo para repetir el loop
delay(1000);
}



                                          










lunes, 4 de diciembre de 2017

Práctica10

para esta practica utilizaremos el sensor PIR, el cual es un  sensor de movimiento y observaremos como es su funcionamiento.


Materiales:

- ArduinoUno
-Protoboard
-Cables Dupont 
-Sensor PIR
-LED

Codigo: 

const int led = 13 ;
const int sensor = 2 ;
void setup() {
pinMode( led , OUTPUT) ; pinMode (sensor , INPUT);
}
void loop() {
if (digitalRead( sensor)) digitalWrite( led , HIGH);
else
digitalWrite( led , LOW);
}

fotos: 





Pr'actica 10.1

En esta practica se va a realizar lo mismo que en la anterior pero la unica diferencia sera que se le integrara un buzzer para cuando el sensor PIR detecte un movimiento se escuche una alarma.  

materiales: 

- ArduinoUno
-Protoboard
-Cables Dupont 
-Sensor PIR
-LED
- Sensor PIR 

Codigo: 

int ledPin = 4;
int piezoBuzzerPin = 3;
int pirSensorPin = 2;
int mociondetectado = LOW; 
void setup() {
pinMode(ledPin, OUTPUT); 
pinMode(pirSensorPin, INPUT); 
pinMode(piezoBuzzerPin, OUTPUT); 
Serial.begin(9600); 
delay(5000); 
}
void loop(){
mociondetectado = digitalRead(pirSensorPin);
if(mociondetectado == HIGH)
{
digitalWrite(ledPin, HIGH);
analogWrite(piezoBuzzerPin, 200);
delay(100);
analogWrite(ledPin, LOW);
analogWrite(piezoBuzzerPin, 25);
delay(100);
}
digitalWrite(ledPin, LOW);
digitalWrite(piezoBuzzerPin,LOW);





    
                                    
                               







      








martes, 21 de noviembre de 2017

Práctica 11

Para esta práctica se utilizara un servo motor y se conocera sus funcionamientos y sus tipos de usos
Materiales:
- ArduinoUno
-motor de corriente directa
-Transistor PN2222
-LED
-Resistencia de 300 ohm
Código:
Voidsetup()
{
pinMode(9,OUTPUT);
}
Void loop () {
digitalWrite(9,HIGH);
delay(1000);
digitalWrite(9,LOW);
delay(1000);
}




Práctica 11.1

Para esta práctica utilizaremos una pantalla LCD  en la cual conoceremos su funcionamiento y sus pines. le vamos a integrar un potenciometro con el cual vamos a podificar la intesidad de a luz de la pantalla.

Materiales: 
-Arduino
-protoboard
-Pantalla LCD
-Potenciometro
-Resistencia 200 ohm

Codigo: 

#include <LiquidCrystal.h>;
LiquidCrystal lcd( 12 , 11 , 5 , 4 , 3 , 2 ) ;
void setup ( )
{
  lcd.begin ( 16 , 2 );
  lcd.print ( "Informática Aeroespacial" );
 }
void loop ( )
{
 lcd.setCursor ( 0 , 1 );
 lcd.print ( millis ( ) / 1000 );
 }