Rivamar_Práctico_01

7
- UTN FRSF - OTRA FORMA DE APRENDER - - DESARROLLO DE SISTEMAS DE CONTOL BASADOS EN PLATAFORMA ARDUINO - - PRACTICO I - ELECTRONICA - PROGRAMACION - SIMULACION - 1 a. Utilizando 123D Circuits (o el IDE de Arduino + Fritzing), implementar los siguientes circuitos. Importante: los 3 ejercicios se deberán respetar los pines que se muestran en las imágenes. Entregar en un archivo comprimido (.rar) con sus respectivos códigos y una imagen o captura de pantalla del circuito. a. Parpadeo de un led con periodos de 800mS encendido y 400mS apagado. Elementos a utilizar: 1 LED 1 Resistencia (220 Ω) 1 Placa Arduino (pin 2)

description

Práctica N° 1 del curso de Arduino. Incluye enunciados, códigos y circuitos desarrollado con Fritzing.

Transcript of Rivamar_Práctico_01

Page 1: Rivamar_Práctico_01

- UTN FRSF - OTRA FORMA DE APRENDER -

- DESARROLLO DE SISTEMAS DE CONTOL BASADOS EN PLATAFORMA ARDUINO -

- PRACTICO I - ELECTRONICA - PROGRAMACION - SIMULACION -

1

a. Utilizando 123D Circuits (o el IDE de Arduino + Fritzing), implementar los siguientes circuitos.

Importante: los 3 ejercicios se deberán respetar los pines que se muestran en las imágenes.Entregar en un archivo comprimido (.rar) con sus respectivos códigos y una imagen o capturade pantalla del circuito.

a. Parpadeo de un led con periodos de 800mS encendido y 400mS apagado.

Elementos a utilizar:

1 LED

1 Resistencia (220 Ω)

1 Placa Arduino (pin 2)

Page 2: Rivamar_Práctico_01

- UTN FRSF - OTRA FORMA DE APRENDER -

- DESARROLLO DE SISTEMAS DE CONTOL BASADOS EN PLATAFORMA ARDUINO -

- PRACTICO I - ELECTRONICA - PROGRAMACION - SIMULACION -

2

Esquema con Fritzing:

Código con IDE Arduino:

Page 3: Rivamar_Práctico_01

- UTN FRSF - OTRA FORMA DE APRENDER -

- DESARROLLO DE SISTEMAS DE CONTOL BASADOS EN PLATAFORMA ARDUINO -

- PRACTICO I - ELECTRONICA - PROGRAMACION - SIMULACION -

3

b. Se deberá obtener una lectura (analógica) desde un potenciómetro el cual nos activará de 1 a5 leds, para esto se necesitará utilizar la función map().

Aclaración: cuando la lectura en el potenciómetro sea 0v estarán todos los leds apagados,cuando la lectura sea 5v estarán todos prendidos, y los valores intermedios activaránsecuencialmente los demás leds. Elementos a utilizar:

5 LED

5 Resistencias (220 Ω)

1 Potenciómetro

1 Placa Arduino (pines 2-6 y A0)

Page 4: Rivamar_Práctico_01

- UTN FRSF - OTRA FORMA DE APRENDER -

- DESARROLLO DE SISTEMAS DE CONTOL BASADOS EN PLATAFORMA ARDUINO -

- PRACTICO I - ELECTRONICA - PROGRAMACION - SIMULACION -

4

Código IDE Arduino:

/*Rivamar, Alfredo. Práctico 1b Arduino UTN FRSF*/// Definición de constantes:const int analogPin = A0; // pin de conexión del potenciómetroconst int ledCount = 5; // por 5 LED conectadosint ledPins[] = {2, 3, 4, 5, 6}; // array conteniendo números de pines de conexión de los LEDvoid setup() {//lazo con el número de pin y envío a la salida del array:for (int thisLed = 0; thisLed < ledCount; thisLed++) {pinMode(ledPins[thisLed], OUTPUT);

}}void loop() {

//lectura del potenciómetro:int sensorReading = analogRead(analogPin);//convertir el resultado a un rango entre 0 y el número de LED (5):int ledLevel = map(sensorReading, 0, 1023, 0, ledCount);

// lazo sobre el array de LED:for (int thisLed = 0; thisLed < ledCount; thisLed++) {

//si el índice de elementos del array es menor que ledLevel, encender este pin:if (thisLed < ledLevel) {

digitalWrite(ledPins[thisLed], HIGH);}//apagar todos los pines más altos que ledLevel:else {

digitalWrite(ledPins[thisLed], LOW);}

}}

Page 5: Rivamar_Práctico_01

- UTN FRSF - OTRA FORMA DE APRENDER -

- DESARROLLO DE SISTEMAS DE CONTOL BASADOS EN PLATAFORMA ARDUINO -

- PRACTICO I - ELECTRONICA - PROGRAMACION - SIMULACION -

5

c. Mostrar secuencialmente (mediante 8 leds) el código binario natural de 8 bits con unasecuencia de 500mS. Se deberá utilizar un bucle for() para aumentar el número, la funciónshiftOut() y un registro de desplazamiento. Además, indicara en el monitor serial, el numerodecimal que está contando, siempre escribiendo en línea nueva.

Elementos a utilizar:

1 Placa Arduino (pines 8 ST_CP, 11- DS y 12 - SH_CP)

1 74HC595

8 LED

8 resistencias.

Page 6: Rivamar_Práctico_01

- UTN FRSF - OTRA FORMA DE APRENDER -

- DESARROLLO DE SISTEMAS DE CONTOL BASADOS EN PLATAFORMA ARDUINO -

- PRACTICO I - ELECTRONICA - PROGRAMACION - SIMULACION -

6

Código IDE Arduino:

/*Rivamar, Alfredo. Práctico 1c Arduino UTN FRSF

*/

//Pin 8 Arduino conectado al Pin 12 del 74HC595 (Latch)

int latchPin = 8;

//Pin 12 Arduino conectado al Pin 11 del 74HC595 (Clock)

int clockPin = 12;

//Pin 11 Arduino conectado al Pin 14 del 74HC595 (Data)

int dataPin = 11;

void setup() {

//configurar pines como salidas (output)

pinMode(latchPin, OUTPUT);

pinMode(clockPin, OUTPUT);

pinMode(dataPin, OUTPUT);

}

void loop() {

//contar desde 0 a 255

for (int i = 0; i < 256; i++) {

//poner latchPin en bajo para permitir el flujo de datos

digitalWrite(latchPin, LOW);

shiftOut(i);

//poner latchPin en alto para cerrar el registro y enviar datos

digitalWrite(latchPin, HIGH);

delay(500);

}

}

void shiftOut(byte dataOut) {

boolean pinState;

//registro de desplazamiento listo para enviar datos

Page 7: Rivamar_Práctico_01

- UTN FRSF - OTRA FORMA DE APRENDER -

- DESARROLLO DE SISTEMAS DE CONTOL BASADOS EN PLATAFORMA ARDUINO -

- PRACTICO I - ELECTRONICA - PROGRAMACION - SIMULACION -

7

digitalWrite(dataPin, LOW);

digitalWrite(clockPin, LOW);

for (int i=0; i<=7; i++) {

//set clockPin en LOW previo enviar un bit

digitalWrite(clockPin, LOW);

//si el valor de DataOut y (AND lógico) en bitmask es verdadero, poner pinState en 1 (HIGH)

if ( dataOut & (1<<i) ) {

pinState = HIGH;

}

else {

pinState = LOW;

}

//poner dataPin en HIGH o en LOW dependiendo de pinState

digitalWrite(dataPin, pinState);

digitalWrite(clockPin, HIGH);

}

//detener el desplazamiento de datos

digitalWrite(clockPin, LOW);

}