Rivamar_Práctico_01
-
Upload
rivamara5960 -
Category
Documents
-
view
5 -
download
0
description
Transcript of 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)
- 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:
- 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)
- 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);}
}}
- 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.
- 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
- 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);
}