Está en la página 1de 6

LABORATORIO 4

MANEJO DEL MODULO ADC


DDP
Universidad distrital francisco José de caldas
facultad de ingeniería – ingeniería eléctrica
David Alejandro Duran Calderón - 20171007048
Maikol Piracon Hoyos - 20172007093
Daniel Sarmiento - 20181007092
I. INTRODUCCION que una PCB que implementa un determinado
diseño de circuitería interna. De esta forma el
El procesamiento de señales implica el uso de un usuario final no se debe preocupar por las
sistema con un procesador para manipular señales conexiones eléctricas que necesita el
que pueden provenir de sensores y generar microcontrolador para funcionar, y puede empezar
acciones. La conversión analógica a digital (ADC) es directamente a desarrollar las diferentes
un proceso importante para la interacción entre el aplicaciones electrónicas que necesite.
mundo analógico y digital. La conversión analógica a
digital codifica niveles de voltaje analógico en forma
digital. Los conversores analógicos a digital incluyen
un circuito de conversión digital a analógico y
utilizan varios métodos para generar y cambiar
códigos digitales. Uno de los módulos ADC internos
del PSoC5LP/Arduino es un conversor de alta
resolución implementado con tecnología Delta
Sigma que proporciona una alta relación señal/ruido
(SNR).
Fig. 1 Arduino.
II. OBJETIVOS
2. Modulo ADC:
• Dar a conocer el funcionamiento del ADC
interno del PSoC5LP /Arduino. El ADC es un circuito integrado electrónico o
• Reforzar el manejo de los GPIO’s. dispositivo modular de uso común que convierte
una señal analógica, generalmente un voltaje, en
III. MARCO TEORICO una serie de representaciones digitales discretas
muestreadas, o en números. Los ADC realizan tres
1. Arduino: operaciones distintas: muestreo, cuantificación y
es una plataforma de desarrollo basada en una placa codificación.
electrónica de hardware libre que incorpora un
microcontrolador reprogramable y una serie de Características del módulo ADC:
pines hembra. Estos permiten establecer
conexiones entre el microcontrolador y los ● Resolución de 8 a 20 bits
diferentes sensores y actuadores de una manera ● Ganancia configurable
muy sencilla (principalmente con cables Dupont). ● Entradas unipolares y diferenciales
Una placa electrónica es una PCB (“Printed Circuit ● Buffer de entrada opcional con filtro RC pasa
Board”, “Placa de Circuito Impreso” en español). Las bajo
PCBs superficies planas fabricadas en un material no ● Opciones de referencia internos y externos
conductor, la cual costa de distintas capas de ● Referencia filtrado para reducir el ruido
material conductor. Una PCB es la forma más ● Modo Incremental o continua
compacta y estable de construir un circuito
● Gain y Offset de corrección
electrónico. Por lo tanto, la placa Arduino no es más
horizontal, esta información deberá ser
actualizada una vez por segundo.
DESARROLLO:
Para la programación del ejercicio usamos el
siguiente código:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

Fig. 2 Modulo ADC


#include<Servo.h>

3. LCD 16X2: LiquidCrystal_I2C lcd(0x27,16,2);

Las siglas LCD significan “Liquid Cristal Display” Servo myservo1;


ó pantalla de cristal líquido. Es una pantalla Servo myservo2;
plana basada en el uso de una sustancia liquida
int angulo;
atrapada entre dos placas de vidrio, haciendo
pasar por este una corriente eléctrica a una int anguloup;
zona específica, para que así esta se vuelva
float norte;
opaca, y además cuenta (generalmente) con
iluminación trasera. Características de las LCD: float este;
Tamaño: El tamaño de un panel LCD
float sur;
generalmente se mide a lo lardo de su diagonal,
expresado generalmente en pulgadas. float oeste;
int nortebajo;
int estebajo;
int surbajo;
int oestebajo;
PARA EL VOID SETUP:
void setup() {
// put your setup code here, to run once:
Fig. 3. LCD.
Serial.begin(9600);
lcd.init();
4. DESARROLLO TEORICO
lcd.backlight();
Ejercicio propuesto:
myservo1.attach(5);
Diseñar un voltímetro digital auto rango para
mediciones de voltaje DC positivo o negativo, al myservo2.attach(3);
realizar la medición el voltímetro de manera }
automática cambiará a alguno de los siguientes
tres rangos dependiendo del voltaje medido: PARA EL VOID LOOP:
primer rango 0 -500mV (resolución 100uV),
void loop() {
segundo rango 500mv – 5v (resolución 1mV),
tercer rango 5v – 50v (resolución 10mV). El valor // put your main code here, to run repeatedly:
medido deberá ser mostrado en una LCD como
un valor numérico y además con la barra
while (nortebajo == surbajo == estebajo == Rango();
oestebajo){
anguloup=45;
Rango();
myservo2.write(anguloup);
angulo=85;
angulo=85;
myservo1.write(angulo);
myservo1.write(angulo);
anguloup=90;
if(estebajo>oestebajo){
myservo2.write(anguloup);
angulo=125;
Visualizacion();
myservo1.write(angulo);
Serial.println("IGUALES");
Serial.println("sur-este");
delay(500);
}
}
if(oestebajo>estebajo){
while (nortebajo > estebajo, nortebajo>
surbajo , nortebajo> oestebajo){ angulo=45;

Rango(); myservo1.write(angulo);

anguloup=125; Serial.println("sur_oeste");

myservo2.write(anguloup); }

angulo=85; Serial.println("sur");
Visualizacion();
myservo1.write(angulo);
if(estebajo>oestebajo){ delay(500);

angulo=125; }

myservo1.write(angulo); while (estebajo > nortebajo, estebajo> surbajo


, estebajo> oestebajo){
Serial.println("Norte-este");
Rango();
}
angulo=125;
if(oestebajo>estebajo){
myservo1.write(angulo);
angulo=45;
anguloup=90;
myservo1.write(angulo);
myservo2.write(anguloup);
Serial.println("Norte_oeste");
if(nortebajo>surbajo){
}
anguloup=125;
Serial.println("Norte");
myservo2.write(anguloup);
Visualizacion();
Serial.println("este-norte");
delay(500);
}
}
if(surbajo>nortebajo){
while (surbajo > estebajo, surbajo> surbajo ,
surbajo> oestebajo){ anguloup=45;
myservo2.write(anguloup);
Serial.println("este-sur"); nortebajo=1;
} }
Serial.println("este"); if(este <=200 ){
Visualizacion(); estebajo=1;
delay(500); }
} if(sur <=200 ){
while (oestebajo > nortebajo, oestebajo> surbajo=1;
surbajo , oestebajo> estebajo){
}
Rango();
if(oeste <=200 ){
angulo=45;
oestebajo=1;
myservo1.write(angulo);
}
anguloup=90;
if(norte >=201 and norte <=400 ){
myservo2.write(anguloup);
nortebajo=2;
if(nortebajo>surbajo){
}
anguloup=125;
if(este >=201 and este <=400 ){
myservo2.write(anguloup);
estebajo=2;
Serial.println("oeste-norte");
}
}
if(sur >=201 and sur <=400 ){
if(surbajo>nortebajo){
surbajo=2;
anguloup=45;
}
myservo2.write(anguloup);
if(oeste >=201 and oeste <=400 ){
Serial.println("oeste-sur");
oestebajo=2;
}
}
Serial.println("oeste");
if(norte >=401 and norte <=600 ){
Visualizacion();
nortebajo=2;
delay(100);
}
}
if(este >=401 and este <=600 ){
}
estebajo=2;
void Rango(){
}
norte= analogRead(A0);
if(sur >=401 and sur <=600 ){
este= analogRead(A1);
surbajo=2;
sur=analogRead(A2);
}
oeste=analogRead(A3);
if(oeste >=401 and oeste <=600 ){
if(norte <=200 ){
oestebajo=2; MONTAJE REALIZADO:
}
if(norte >=601 ){ PRUEBA DE QUE FUIMOS A LA PRACTICA Y LA
PRESENTAMOS:
nortebajo=3;
}
if(este >=601 ){
estebajo=3;
}
if(sur >=601 ){
surbajo=3;
}
if(oeste >=601 ){
oestebajo=3;
} }
void Visualizacion(){
lcd.setCursor(0,0);
lcd.print("N=");
lcd.print(norte);
lcd.setCursor(9, 0);
Tuvimos un inconveniente de ultimo momento
lcd.print("S="); con la placa que sostenía las resistencias y con
la programación al detectar niveles muy altos de
lcd.print(sur); voltaje(luz). Por lo tanto solo se movía
lcd.setCursor(0,1); correctamente con una linterna.

lcd.print("E="); 5. CONCLUSIONES

lcd.print(este); • los ADC son componentes esenciales para la


lcd.setCursor(9, 1); conversión de señales analógicas en datos
digitales, y su elección debe basarse en las
lcd.print("O="); necesidades específicas de la aplicación en
lcd.print(oeste); términos de resolución y velocidad de
muestreo.
Serial.println(norte); • Es importante considerar la resolución y la
Serial.println(este); velocidad de muestreo al elegir un ADC para
una aplicación específica. La resolución se
Serial.println(sur); refiere al número de bits utilizados para
Serial.println(oeste); codificar la señal analógica en un valor
digital, mientras que la velocidad de
Serial.println("*"); muestreo se refiere a la frecuencia con la
} que se toman las mediciones de la señal
analógica.
6. REFERENCIAS

[1] “Modulo ADC.”


https://naylampmechatronics.com/sensoresproxim
idad/10-sensor-ultrasonido-hc-sr04.html (accessed
May 27, 2022).

[2] “Sensors Modules Module ADC | Sensors


Modules.”
https://www.electronicwings.com/sensorsmodules
/ultrasonic-module-hc-sr04 (accessed May 27,
2022).

[3] “Ranging Module HC-SR04”, Accessed: May 27,


2022. [Online]

[4] “Introducción a las LCD.”


https://www.5hertz.com/index.php?route=tutorial
es/tu torial&tutorial_id=9 (accessed May 27, 2022).
[5] “LCD 16×2 Fondo Azul | Dignal.”
https://dignal.com/producto/lcd-16x2-fondo-azul/
(accessed May 27, 2022). [6] “MANEJO DE DISPLAY
LCD (Versión 1.1)”

También podría gustarte