Está en la página 1de 3

1

Practica 3. Entradas/Salidas Digitales


Florín Beltrán Oscar Daniel
ESIME Zacatenco
Estado de México

actuadores para que la placa pueda
Resumen- Esta práctica consiste en la enviarles las órdenes pertinentes, además
elaboración de un programa y circuito con de poder conectar cualquier otro
el cual se pueda encender un led componente que necesite comunicarse con
configurando el pin 11 como salida y el la placa de alguna manera. A veces a estos
pin 7 como entrada, a la entrada se le pines-hembra digitales de “propósito
conecto un DIPSW y dependiendo del general” se les llama pines GPIO (de
valor de la entrada (Alto o Bajo) el led se “General Purpose Input/Output”).
encenderá. Todo esto se controla a través
Todos estos pines-hembra digitales
del microcontrolador ATmega328
funcionan a 5 V, pueden proveer o recibir
programado en la plataforma Arduino y
un máximo de 40 mA y disponen de una
obteniendo su equivalente en ensamblador
resistencia “pull-up” interna de entre 20
Índice de Términos – Arduino, KΩ y 50 KΩ que inicialmente está
Atmega328, Entrada digital, Salida desconectada (salvo que nosotros
digital. indiquemos lo contrario mediante
programación software). Hay que tener en
I. INTRODUCCIÓN cuenta, no obstante, que aunque cada pin
individual pueda proporcionar hasta 40
En la utilización de los
mA como máximo, en realidad,
microcontroladores de 8 bits disponemos
internamente la placa agrupa los pines
de 8 líneas de entrada/salida en cada uno
digitales de tal forma que tan solo pueden
de sus tres puertos (B,C,D) es decir que se
aportar 100 mA a la vez el conjunto de los
tienen 24 líneas de entrada salida
pines nº 0,1,2,3 y 4, y 100 mA más el
disponibles. En la configuración de
resto de pines (del 5 al 13). Esto quiere
Arduino los puertos PORTB, PORTC,
decir que como mucho podríamos tener 10
PORTD tienen direcciones de
pines ofreciendo 20 mA a la vez.
configuración para cada uno de ellos, el
PORTB tiene digital 13,12,11,10,9,8, el
PORTC tiene A5,A4,A3,A2,A1,A0 y el
II. DESARROLLO DE LA
PORTD digital 6,5,4,3,2,1,0. PRACTICA
Desarrollar un programa para el chip
La placa Arduino dispone de 14 pines- Atmega328 (plataforma Arduino) que lea
hembra de entradas o salidas (según lo el estado de un DIPSW. Si el estado
que convenga) digitales, numeradas desde lógico leído es “1”, prender el led, de lo
la 0 hasta la 13. Es aquí donde contrario apagarlo.
conectaremos nuestros sensores para que
la placa pueda recibir datos del entorno, y
también donde conectaremos los


Documento recibido el 14 de noviembre de 2020
2

5V conectado a Vcc.
Arduino

P7 P11

DIPSW Atmega328

Imagen 1. Diagrama de conexiones


P7- Pin 7 Arduino
P11- Pin 11 Arduino
Figura 2. Diagrama de conecciones del circuito
Para desarrollar el programa y la
simulación del circuito mostrado en la El programa que se cargo en el
imagen 1 con el microprocesador microcontrolador es el siguiente
ATmega328 se empleó el simulador (Programa en C++):
online Tinkercad donde se realizó lo
siguiente: //Practica 3 Entradas/Salidas Digitales
//Programado por Florin Beltran Oscar
Daniel
 Se conecto la alimentación de 5Vcc y la
//12/11/2020
tierra que ofrece el Arduino a la
/*Funcionamiento
protoboard para energizarla y se
Se toma el puerto 11 como salida hacia
puentearon las terminales de los
un led y el puerto 7 como entrada a
extremos para energizar todo el
la cual se le conecta un dipswitch
contorno.
normalmente energizado al activar el
dip se manda a tierra.
 Se hizo el calculo de la resistencia
Cuando el puerto 7 registra un valor alto
limitadora del led se salida, tomando en
(5V) enciende el led y cuando se va a
cuenta que es amarillo tiene un voltaje
tierra lo apaga
umbral de 1.7V a 2V y que el Arduino
*/
entrega 20mA de corriente por pin se
int boton; //Se declara una variable
tiene que:
que //almacene el valor del
puerto 7
void setup(){
pinMode(11,OUTPUT); //se declara al
Ya que no hay un resistor comercial de pin 11 //como
ese valor se toma el superior más salida
próximo y seria de 180Ω. pinMode(7,INPUT); //se declara al pin 7
como //entrada
 Se conectó el pin 11 al ánodo de un led }
amarillo y al cátodo el resistor de void loop(){
180Ω. boton=digitalRead(7);//almacenamos el
valor //que toma el
 Se conectó el pin 7 a un resistor de 4.7kΩ puerto 7 en //la
a su vez el otro terminal del resistor a variable boton
Vcc y a un DIPSW que en su otro if (boton==HIGH){ //SI la variable
terminal va conectado a tierra para así boton esta //en 1 ó alto
al accionar el DIPSW este este digitalWrite(11,HIGH);//pone en alto el
conectado a tierra y al estar abierto esté puerto //11
3

} BREQ 1;
else //SI NO
{ LDI R16,0X08; //Se asigna 0x08 a R16
digitalWrite(11,LOW); //pone el STS 0X25,R16; //Se almacena 0x08 en
puerto 11 en 0x25;
//estado bajo
} BREQ 0;
}
LDI R16,0X00; //Se asigna 0x00 a R16
STS 0X25,R16; //Se almacena 0x00 en
0x25;
Para observar la simulación rjmp AGAIN;
funcionando con el programa ingresar al IX. CONCLUSIÓN
siguiente link:
Al terminar la practica se llegó a la
https://www.tinkercad.com/things/ conclusión de que las Entradas/Salidas
Digitales nos ayudan a interactuar con
4C8NIgXFdpx
diferentes módulos externos al
microprocesador configurando los pines
Para poder reportar el programa
digitales como entrada o salida y
equivalente en ensamblador se definen las
utilizándolos como receptores de
siguientes instrucciones:
información externa, procesando y dando
como resultado una salida digital para
IN R16,PDN: Se almacena el valor del
mostrar el resultado o enviarlo a otro
pin N en el registro 16
modulo externo.
CPI R16,1: Se compara el valor del
registro 16 con el estado REFERENCES
alto o el valor lógico 1
[1] Atmel Corporation, “ATmega328P”
1600 Technology Drive, San Jose, CA
BREQ //si se compara con CPI y son
95110 USA.
iguales se ejecuta después
de BREQ [2] Óscar Torrente Artero, “ARDUINO
El programa equivalente en Curso práctico de formación”, Primera
Ensamblador Edición Alfaomega Grupo Editor,
S.A. de C.V., México, febrero 2013.
LDI R16,0x08; //se asigna 0x08 a R16
OUT DDRB,R16; //se coloca el pin
11 //(PB3) como
salida
LDI R16,0x00; //se asigna 0x00 a R16

OUT DDRD,R16; //se coloca el puerto


D como entrada
AGAIN: in R16,PD7; //Se lee el dato
que recibe el pin 7
digital
CPI R16,1; //Se compara el R16 con el
valor alto.

También podría gustarte