31
Colegio de estudios científicos y tecnológicos del estado de México Plantel Tecámac Evaluación del SER “10 componentes de ARDUINO” Asignatura: Administra Sistemas Operativos Profe: Rene Domínguez Escalona Integrantes: Sergio Eduardo Num.Lista:10 Uriel Álvarez Num.Lista:36 Alma Brenda Num.Lista:37 David Hernández Num.Lista:17 Nataly Llaca Num.Lista:28 Ian Gustavo Num. Lista: 43 Grupo: 503

Proyecto de arduino

Embed Size (px)

Citation preview

Colegio de estudios científicos y tecnológicos del estado de México

Plantel Tecámac

Evaluación del SER

“10 componentes de ARDUINO”

Asignatura: Administra Sistemas Operativos

Profe: Rene Domínguez Escalona

Integrantes:

Sergio Eduardo Num.Lista:10

Uriel Álvarez Num.Lista:36

Alma Brenda Num.Lista:37

David Hernández Num.Lista:17

Nataly Llaca Num.Lista:28

Ian Gustavo Num. Lista: 43

Grupo: 503

-DISPLAY DE 7 SEGMENTOS-

Introducción

En este proyecto que se realiza será de un display de 7 segmentos de Arduino.

Se verá a continuación lo que es su código, su procedimiento su diagrama para sea más fácil poder

llegar a conectarlo y poder entender parte de su código

Objetivo

El objetivo principal de este proyecto que es display de 7 segmentos con arduino es aprender bien a

poder conectarlo y entender un poco más sobre cada componente de arduino, y con esto

conoceremos lo que es más su funcionalidad y como aprender a usarlo

Materiales

Arduino

Display de 7 segmentos

1 Resistencia de 220 Ohms

8 Cables de conexion

Funcionamiento

Consiste en un display de este tipo no es más que un conjunto de LED’S Nosotros usaremos el

display es decir, internamente todos los LED’s comparten la misma tierra (GND) El circuito es fácil de

armar, las configuraciones pueden variar, solo recuerda declarar bien los pines dentro del código de

Arduino.

Conexión

Como se puede apreciar las conexiones quedaron de la siguiente manera:

Pin A del Display al pin 2 del Arduino

Pin B del Display al pin 3 del Arduino

Pin G del Display al pin 0 del Arduino

Pin F del Display al pin 1 del Arduino

Pin E del Display al pin 4 del Arduino

Pin D del Display al pin 5 del Arduino

Pin C del Display al pin 6 del Arduino

La tierra del display va conectada a un extremo de la resistencia y el otro extremo de la

resistencia va conectado a tierra del Arduino (GND)

Programa de Arduino

En el cogido se explica para que es cada línea de comando y así se puede entender mejor para

que funciona cada parte

int pausa=1000; // Variable que define el intervalo de tiempo entre cada digito

void setup()

{ pinMode(7, OUTPUT); // Asignación de las salidas digitales pinMode(8, OUTPUT);

pinMode(9, OUTPUT); pinMode(10, OUTPUT);

pinMode(11, OUTPUT); pinMode(12, OUTPUT); pinMode(13, OUTPUT);

} void display (int a, int b, int c, int d, int e, int f, int g)

// Funcion del display { digitalWrite (7,a); //Se reciben 7 variables y se asignan

digitalWrite (8,b); //a cada una de las salidas digitalWrite (9,c);

digitalWrite (10,d); digitalWrite (11,e); digitalWrite (12,f); digitalWrite (13,g);

} void loop() //Funcion principal

// Dependiendo de cada dígito, se envía a la función display // los estados (0 y 1) a cada uno de los segmentos {

display (1,1,1,1,1,1,0); //escribe 0 delay(pausa);

display (0,1,1,0,0,0,0); //escribe 1 delay(pausa); display (1,1,0,1,1,0,1); //escribe 2

delay(pausa); display (1,1,1,1,0,0,1); //escribe 3

delay(pausa); display (0,1,1,0,0,1,1); //escribe 4 delay(pausa);

display (1,0,1,1,0,1,1); //escribe 5 delay(pausa);

display (1,0,1,1,1,1,1); //escribe 6 delay(pausa);

display (1,1,1,0,0,0,0); //escribe 7

delay(pausa); display (1,1,1,1,1,1,1); //escribe 8 delay(pausa);

display (1,1,1,0,0,1,1); //escribe 9 delay(pausa);

}

CODIGO DEL VIDEO

nt led = 13;

int led1 = 12;

int led2 = 11;

int led3 = 10;

int led4 = 9;

int led5 = 8;

int led6 = 7;

void setup() { pinMode(led, OUTPUT);

pinMode(led1, OUTPUT);

pinMode(led2, OUTPUT);

pinMode(led3, OUTPUT);

pinMode(led4, OUTPUT);

pinMode(led5, OUTPUT);

pinMode(led6, OUTPUT);

}

Conclusion

En este proyecto relativamente fácil de ejecutar pudios comprender unpoco mas sobre arduino UNO

y asi con el cosigo explicada cada parte es mas fácil entender la importancia de los componentes

para el funcionamiento de el display de 7 segmentos y asi como a nosotros nos sirvio en distintos

sentidos el código

-MATRIZ DE LEDS-

Introducción

Nuestro proyecto consiste en dar a conocer el funcionamiento de matriz de led´s y asi como el

codigo que implementamos para poder hacer que el proyecto se llevara acabo y con el codigo se

mostrara el mensaje que mandara

Objetivo

Mostrar como es el diseño y la construcción de una matriz led 8x8 y a su vez Implementar todos los

conocimientos adquiridos

Materiales

1 x Arduino Uno

1 x Protoboard (

1 x Matriz LED

16 Resistencias 220Ω

1 Juego de Cables

Funcionamiento

En este circuito, se verá como se conecta y cual es la resistencia que debemos colocar en función de

sus características técnicas, y una matriz, como veremos, no es más que un montón de led en un

mismo encapsulado

Código

#include "C:\C_CCS_proyec\matrix8x8.h"

void fConfigurar_puertos(void);

void envio_serial(void);

#BYTE PORTA=0X05

#BYTE PORTB=0X06

int8 LetraA[8]={ //A

0b11111111,

0b11000001,

0b10000001,

0b10110111,

0b10110111,

0b10000001,

0b11000001,

0b11111111};

int8 LetraO[8]={ //0

0b11111111,

0b11000011,

0b10000001,

0b10110101,

0b10101101,

0b10000001,

0b11000011,

0b11111111};

int8 LetraG[8]={ //G

0b11111111,

0b11000011,

0b10000001,

0b10110101,

0b10110101,

0b10010001,

0b11010011,

0b11111111};

int8 LetraE[8]={ //E

0b11111111,

0b11000011,

0b10000001,

0b10100101,

0b10100101,

0b10100101,

0b10100101,

0b11111111};

int8 Display2=0b00000001;

signed int num,ini;

signed int n;

int8 b,d,w;

int8 reg;

int32 contador;

void main(){

set_tris_a(0);

set_tris_b(0);

output_a(0);

output_b(0x00);

ini=-32;

while (1){

for (num=0;num<8;num++){

for (reg=0;reg<40;reg++){

output_b(0x00);

if (b>7){

b=0;}

if (reg<8){

d=bit_test(LetraA[num],b);

envio_serial();

}

else

if (reg<16){

d=bit_test(LetraG[num],b);

envio_serial();}

else

if (reg<24){

d=bit_test(LetraE[num],b);

envio_serial();}

else

if (reg<32){

d=bit_test(LetraO[num],b);

envio_serial();}

b=b+1;

}

output_b(Display2);

delay_ms(1);

Display2=Display2<<1;

n=n+1;

if (n>7){

Display2=0x01;

n=0;

}

}

}

}

void envio_serial(void){

switch (d){

case 0:

bit_clear(porta,0);

bit_set(porta,1);

delay_us(1);

bit_clear(porta,1);

break;

default:

bit_set(porta,0);

bit_set(porta,1);

delay_us(1);

bit_clear(porta,1);

break;

}

}

////config

void fConfigurar_puertos(void){

setup_adc_ports(NO_ANALOGS);

setup_adc(ADC_OFF);

setup_spi(SPI_SS_DISABLED);

setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);

setup_timer_1(T1_DISABLED);

setup_timer_2(T2_DISABLED,0,1);

setup_comparator(NC_NC_NC_NC);

setup_vref(FALSE);

}

Evidencias

Descripción de funcionamiento

Su funcionamiento es muy básico, solo prende y apaga en forma de onda de una esquina a la otra.

Conclusión

En este proyecto que no fue tan fácil de poder realizar pero al final pudimos conectarlo, ahora nos

damos cuenta de cada componente de arduino es fácil de conectar si se tiene empeño en lo que se

hace nos ha servido de mucho

-RFID-

Introducción

En este proyecto que se realiza será de un RFID para asi poder aprender más de su funcionamiento.

Se verá a continuación lo que es su código, su procedimiento su diagrama para sea más fácil poder

llegar a conectarlo y poder entender parte de su código

Objetivo

El objetivo principal de este proyecto que es RFID con arduino es aprender a como manipular este

componente sobre la protoboard y un arduino para así dar a conocer su funcionamiento.

Materiales

Arduino uno

-protoboard

-RFID

-

Diagrama

Código

int val = 0;

char code[14];

// 2 digits manufacture code

// 10 digits card code

// 2 digits parity bits

int bytesread = 0;

int led = 8;

void setup() {

Serial.begin(9600); // RFID reader TX pin, Baud rate: 9600, Data bits: 8, stop bit: 1.

pinMode(2,OUTPUT); // Set digital pin 2 as OUTPUT to connect it to the RFID RESET pin

pinMode(led,OUTPUT);

digitalWrite(2, HIGH); // Activate the RFID reader

}

void loop() {

if(Serial.available() > 0) { // if data available from reader

if((val = Serial.read()) == 10) { // check for header

bytesread = 0;

while(bytesread < 14) { // read 14 digit code

if( Serial.available() > 0) {

val = Serial.read();

if((val == 10)||(val == 13)) { // if header or stop bytes before the 10 digit reading

break; // stop reading

}

code[bytesread] = val; // add the digit

bytesread++; // ready to read next digit

}

}

if(bytesread == 14) { // if 14 digit read is complete

Serial.print("TAG code is: "); // possibly a good TAG

Serial.println(code); // print the TAG code

digitalWrite(led, HIGH);

}

bytesread = 0;

digitalWrite(2, LOW); // deactivate the RFID reader for a moment so it will not flood

delay(1500); // wait for a bit

digitalWrite(2, HIGH); // Activate the RFID reader

digitalWrite(led, LOW);

}

}

}

Description de funcionamiento

Básicamente el funcionamiento de nuestro RFID es que cuando se le pasa la tarjeta sobre la tarjeta

de rfid esta prendera un led que se encuentra en nuestra protoboard

Evidencia

Conclusión

Al realizar este trabajo pudimos adquirir nuevos conocimientos sobre la asignatura de ASO y

comprender un poco más sobre arduino uno a su máxima extensión

-CONTROL REMOTO-

Introducción

En este proyecto que se realiza será del CONTROL REMOTO para así poder aprender más de su

funcionamiento.

Se verá a continuación lo que es su código, su procedimiento su diagrama para sea más fácil poder

llegar a conectarlo y poder entender parte de su código

Objetivo

El objetivo principal de este proyecto que es control remoto con arduino es aprender a como

manipular este componente sobre la protoboard y un arduino para así dar a conocer su

funcionamiento

Materiales

-batería

-arduino uno

-control remoto

-VS1838

Diagrama

Código

// Cantidad de pulsos

#define TRAIN_LENGTH 32

// En microsegundos

#define LOW_LIMIT 600

#define HIGH_LIMIT 1800

#define INIT_LIMIT 4000

#define IN 2

#define LED 13

long start, delta = 0;

uint32_t value;

int pos = 0;

boolean has_value = false;

unsigned int key[10];

void inputPin() {

noInterrupts();

if (has_value) return;

if (digitalRead(IN) == HIGH) {

start = micros();

}

else {

delta = micros() - start;

if (delta < LOW_LIMIT) {

value <<= 1;

value |= 1;

++pos;

}

else if (delta < HIGH_LIMIT) {

value <<= 1;

value |= 0;

++pos;

}

else if (delta > INIT_LIMIT) {

value = 0;

pos = 0;

}

if (pos == TRAIN_LENGTH) {

has_value = true;

}

}

interrupts();

}

void setup()

{

key[0] = 0x9768;

key[1] = 0xCF30;

key[2] = 0xE718;

key[3] = 0x857A;

key[4] = 0xEF10;

key[5] = 0xC738;

key[6] = 0xA55A;

key[7] = 0xBD42;

key[8] = 0xB54A;

key[9] = 0xAD52;

Serial.begin(115200);

pinMode(IN, INPUT);

pinMode(LED, OUTPUT);

digitalWrite(LED, LOW);

attachInterrupt(0, inputPin, CHANGE);

}

void loop()

{

int i;

if (has_value) {

Serial.print("V: ");

Serial.println(value & 0x0000FFFF, HEX);

i = 0;

while(i<10 && (key[i] != (value & 0x0000FFFF))) ++i;

Serial.println(i);

while(i--) {

digitalWrite(LED, HIGH);

delay(400);

digitalWrite(LED, LOW);

delay(200);

}

has_value = false;

pos = 0;

}

}

Evidencias

Descripción de funcionamiento

Su funcionamiento es muy sencillo, solo al presionar el botón numero 5 el led RGB prendera de color

azul y ya.

Conclusión

al realizar este trabajo nos pudimos percatar de cuan interesante es todo esto de arduino que en lo

personal me parece una muy buena actividad para realizar en equipo

-MICROFONO-

Introducción

Las ondas de sonido son pequeños cambios en la presión del aire. Un micrófono es el transductor

encargado de convertir esa onda en una señal eléctrica medible, análoga a el sonido que se quiere

medir. Sin embargo, la señal obtenida del micrófono debemos amplificarla, para eso usualmente esta

función se implementa mediante un amplificador operacional, en nuestro caso utilizaremos un

módulo de micrófono que ya incluye dicho amplificador.

Objetivo

El objetivo principal de este proyecto que es micrófono con arduino es aprender a como manipular

este componente sobre la protoboard y un arduino para así dar a conocer su funcionamiento y sus

propiedades.

Materiales

-arduino uno

-cable USB

-cables de protoboard macho y hembra

-micrófono

-LED

Diagrama

Código

// VU METER

int soundPin = A0;

void setup()

{

Serial.begin(9600);

}

void loop()

{

int value = analogRead(soundPin);

int topLED = 1 + abs(value) / 10;

for (int i =0; i < topLED; i++)

{

Serial.print("*");

}

Serial.println();

Serial.println(value); // print value for checking purposes

delay(100);

}

Evidencias

Descripción de funcionamiento

Su funcionamiento es muy sencillo, cuando damos un sonido muy fuerte el diodo led se prende por

medio de la resonancia que tengamos ajustada en el código de nuestro componente.

Conclusión

Al realizar este trabajo pudimos percatarnos de cómo funcionan las resonancias dentro de nuestro

arduino y que es muy interesante aprender más sobre el micrófono de nuestro arduino.

-JOYSTICK-

Introducción

En este proyecto mostraremos la función que tiene un joystick con un servo motor moviéndose en

dirección x, y.

Objetivo

El objetivo principal de este proyecto que joystick con arduino es aprender a como manipular este

componente sobre la protoboard y un arduino para así dar a conocer su funcionamiento y sus

propiedades.

Materiales

-arduino uno

-protoboard

-joystick

-servomotor

-cables de conexión macho y hembra

Diagrama

Código

/ *

#include < Servo .h>

/ * ----- (Declarar Constantes y Números de patas) ----- * /

#define ServoHorizontalPIN 3 // ¿Se puede cambiar 3,5,6,9,10,11

ServoVerticalPIN #define 5 // ¿Se puede cambiar 3,5,6,9,10,11

#define HorizontalPotPin A0 entrada // analógica 0 (cero)

#define VerticalPotPin A1 // Entrada analógica 0 (cero)

#define ServoMIN_H 20 // No vaya al final del recorrido del servo

#define ServoMAX_H 160 // que no puede ser el final de 0 a 180.

#define ServoMIN_V 20 // No vaya al final del recorrido del servo

#define ServoMAX_V 160 // que no puede ser el final de 0 a 180.

/ * ----- (Declarar objetos) ----- * /

Servo HorizontalServo; // crear objeto servo para controlar un servo

Servo VerticalServo; // crea objeto servo para controlar un servo

// un máximo de ocho objetos servo se puede crear

/ * ----- (Declarar Variables) ----- * /

int HorizontalPotValue; // El usuario mueve el bote.

int HorizontalServoPosition; // variable para almacenar la posición del servo

int VerticalPotValue;

int VerticalServoPosition;

void setup () / ****** SETUP: se ejecuta una vez ****** /

{

. HorizontalServo adjuntar (ServoHorizontalPIN); // concede el servo al objeto servo

VerticalServo. adjuntar (ServoVerticalPIN); // concede el servo al objeto servo

} // - (configuración final) ---

void loop () / ****** BUCLE: ejecuta constantemente ****** /

{

HorizontalPotValue = analogRead (HorizontalPotPin); // Obtener el valor como usuario mueve olla

VerticalPotValue = analogRead (VerticalPotPin); // Obtener el valor como usuario mueve la olla

// Escala para usarlo con el servo (valor entre MIN y MAX)

HorizontalServoPosition = mapa (HorizontalPotValue, 0, 1023, ServoMIN_H, ServoMAX_H);

VerticalServoPosition = mapa (VerticalPotValue, 0, 1023, ServoMIN_V, ServoMAX_V);

// Decirle servos para ir a la posición

HorizontalServo. escribir (HorizontalServoPosition);

VerticalServo. escribir (VerticalServoPosition);

retardo (25); // esperar a que el servo para llegar a la posición de

}

Evidencias

Descripción de funcionamiento

Cuando giramos el joystick en dirección en x, el servomotor se moverá unos 25 grados y cuando lo

giramos en dirección y, regresara los 25 grados anteriores.

Conclusión

Al concluir este trabajo cabe remarcar que fue una labor de mucho esfuerzo pero al final obtuvimos

el resultado deseado y satisfactorio para el equipo.

-LED RGB-

Introducción

En este proyecto mostraremos la función que tiene el led RGB de nuestro paquete de arduino.

Objetivo

El objetivo principal de este proyecto que es el LED RGB con arduino es aprender a como manipular

este componente sobre la protoboard y un arduino para así dar a conocer su funcionamiento y sus

propiedades.

Materiales

-arduino uno

-LED RGB

-Resistencias de 220 Ohm

-Cables de conexión

Diagrama

Código

/*-----Declaracion de variables para cada color R G B-----*/

int rled = 11; // Pin PWN 11 para led rojo

int bled = 10; // Pin PWM 10 para led azul

int gled = 9; // Pin PWM 9 para led verde

/*----Declaracion de variables auxiliares-----*/

int i; // Variable para ciclos repetitivos

int repeat = 5; // Variables para cantidad limite de repeticiones

void setup() {

/*----- Se inicializan pines PWM como salida*/

pinMode(rled, OUTPUT);

pinMode(bled, OUTPUT);

pinMode(gled, OUTPUT);

}

void loop() {

for(i=0; i<repeat; i++) //Se repite la ejecucion de la funcion rgbon() "repeat" veces

rgbon();

delay(1000); //Se espera 1 segundo

colors('y'); //Se enciende el LED en color amarillo (y de yellow)

delay(1000);

colors('o'); //Se enciende el LED en color naranko (o de orange)

delay(1000);

colors('p'); //Se enciende el LED en color rosado (p de pink)

delay(1000);

}

/*-----Funcion para mostrar colores principales cada 500 ms-----*/

void rgbon(){

analogWrite(rled,255); // Se enciende color rojo

delay(500); // Se esperan 500 ms

analogWrite(rled,0); // Se apaga color rojo

analogWrite(bled,255); // Se enciende color azul

delay(500); // Se esperan 500 ms

analogWrite(bled,0); // Se apaga color azul

analogWrite(gled,255); // Se enciende color verde

delay(500); // Se esperan 500 ms

analogWrite(gled,0); // Se apaga colo verde

}

/*-----Funcion que permite escoger entre color amarillo, naranjo o rosado-----*/

void colors(char color){ //La funcion recibe un parametro que se guarda en variable color

switch(color){ //Se compara variable color con dato guardado

case 'y': analogWrite(rled,255); // Si color == 'y' se enciende color amarillo

analogWrite(gled,255); // Mezclando r = 255 / g = 255 / b = 0

analogWrite(bled,0);

break;

case 'o': analogWrite(rled,255); // Si color == 'o' se enciende color naranjo

analogWrite(gled,180); // Mezclando r = 255 / g = 180 / b = 0

analogWrite(bled,0);

break;

case 'p': analogWrite(rled,255); // Si color == 'p' se enciende color rosado

analogWrite(gled,0); // Mezclando r = 255 / g = 0 / b = 255

analogWrite(bled,255);

break;

}

}

Evidencias

Descripción de Funcionamiento

Su funcionamiento es cambiar a muchos colores el mismo led que en este caso es LED RGB.

Conclusión

Al realizar este trabajo nos pudimos percatar de que se desarrolló de una manera muy sencilla en

comparación a anteriores trabajos por lo cual quedamos satisfechos por el resultado de dicho

proyecto.