Está en la página 1de 13

Código

SISTEMAS MICROCONTROLADOS
Página 1 de 10

LABORATORIO Nº 3
CONTADOR DE 0 A 999
1. ANTECEDENTES

Un Sistema Microcontrolado (Sistema Basado en Microcontroladores) es un


conjunto de Dispositivos Electrónicos de Entrada y Salida interconectados con un
Microcontrolador (abreviado μC, UC o MCU) con el propósito de brindar una solución
automatizada en múltiples campos de aplicación (automotriz, hogar, industria,
medicina, robótica, exploración, etc.). El siguiente esquema muestra los tres
bloques fundamentales de un Sistema Microcontrolado:

Dispositivos de entrada

Son todos los dispositivos capaces de cambiar su estado como respuesta a un


evento que los afecte y generar una señal que pueda ser utilizada por el
microcontrolador para ejecutar una operación de control o decisión: Interruptores
(switch), Pulsadores, Teclados, Receptores de Telecomunicaciones (bluetooth,
wifi, ethernet, radiofrecuencia, infrarrojos) y toda la gama de Sensores
(temperatura, presión, distancia, movimiento, humedad, luz, gas, etc.). Para la
mayoría de sensores se requiere convertir la señal eléctrica producida por ellos a una
señal digital, para lo cual se utilizan conversores ADC (Analog-to-Digital Converter),
externos o incorporados en el microcontrolador.

Microcontroladores

Un Microcontrolador es un circuito integrado programable, capaz de ejecutar las


órdenes grabadas en su memoria. En la actualidad los microcontroladores usados
con mayor frecuencia son los PIC de Microchip, los AVR de Atmel y las tarjetas
Arduino (las cuales emplean microcontroladores de Atmel).

Dispositivos de salida

Los dispositivos de salida se encargan de recibir las señales del microcontrolador y


realizar acciones particulares; entre los dispositivos mas utilizados están
Código
SISTEMAS MICROCONTROLADOS
Página 2 de 10

los Visuales (LED, LCD), Auditivos (zumbadores), Transmisores de


Telecomunicaciones (bluetooth, wifi, ethernet, radiofrecuencia, infrarrojos) y
Actuadores (relés, motores, electroválvulas, electroimanes, servomotores,
motores de pasos)

2. OBJETIVO GENERAL

Realizar un programa para en microcontroladador atmega328p implementado en el


arduino uno que permita contar de 0 a 999 mostrados en el displays de 4 dígitos de
7 segmentos.

3. OBJETIVO ESPECIFICO

 Realizar la simulación del circuito del laboratorio


 Adquirir los materiales para el armado del circuito
 Verificar los puertos y pines a la cual corresponde el displays
 Realizar el código del laboratorio en el programa arduino ide

4. MARCO TEORICO

El presente laboratorio tiene la finalidad de explicar el proceso que se ha llevado a


cabo para el diseño de hardware y software y la construcción de un circuito
electrónico, la cual básicamente consiste en un sistema, a de multiplexacion de tres
dígitos de ub displays cada uno de 7 segmentos en este caso utilizamos un displays
de 4 dígitos 56441AS Cátodo Común, este displays se utilizo en una aplicación de un
contador ascendente de (0-999).
Cada uno de los tres displays se encarga de mostrar un digito (centenas, decenas y
unidades) respectivamente. Y para el reinicio del contador se utilizó un pulsador,
para el tiempo de cambio de numero a otro un potenciómetro.

5. MATERIALES PARA LAS PRACTICAS DE LABORATORIO

Nº DETALLE CANTIDAD OBSERVACIONES


1 Arduino uno 1 unidades
2 Cables para la conexion 10 a 20 Unidades de dif. tamaños
3 Simulador (tinkercad) 1 Simulación para el circuito
4 computadoras 1 unidad
Código
SISTEMAS MICROCONTROLADOS
Página 3 de 10

6. ARDUINO UNO
El Arduino Uno es una placa de microcontrolador de código abierto basado en el
microchip ATmega328P y desarrollado por Arduino.cc. La placa está equipada con
conjuntos de pines de E/S digitales y analógicas que pueden conectarse a varias
placas de expansión y otros circuitos

7. CABLES JUMPERS
Los cables jumpers dupont facilitan la conexión en prototipos, sensores y otros
dispositivos electrónicos. Son perfectos para usar con micro controladores como
Arduino, Raspberry, AVR entre otros.
Código
SISTEMAS MICROCONTROLADOS
Página 4 de 10

8. DISPLAYS DE 7 SEGMENTOS (CUATRO DIGITOS)

Los displays de 7 segmentos consisten en una serie de LEDs colocados para


formar números. Estos LEDs se controlan a través de los pines de la pantalla (1-
12). Los grupos de LEDs o dígitos se activan a través de los pines D1,D2,D3,D4 y
los LEDs se encienden a través de los pines A,B,C,D,E,F,G y DP para el punto
decimal.

9. SIMULACION EN TINKERCAD
Código
SISTEMAS MICROCONTROLADOS
Página 5 de 10

10. CODIGO
11. long n = 0;
12. int x = 100;
13. int del = 1000;
14. int a=5;
15. int b=7;
16. int c=4;
17. int d=11;
18. int e=10;
19. int f=3;
20. int g=6;
21. //SE CONFIGURA PINES COMO SALIDA Y ENTRADA
22. void setup(){
23. pinMode(13, OUTPUT);
24. pinMode(12, OUTPUT);
25. pinMode(11, OUTPUT);
26. pinMode(10, OUTPUT);
27. pinMode(9, OUTPUT);
28. pinMode(8, OUTPUT);
29. pinMode(7, OUTPUT);
30. pinMode(6, OUTPUT);
31. pinMode(5, OUTPUT);
32. pinMode(4, OUTPUT);
33. pinMode(3, OUTPUT);
34. pinMode(2, INPUT);//PUSH BUTTON
Código
SISTEMAS MICROCONTROLADOS
Página 6 de 10

35. pinMode(A0, INPUT);//POTENCIOMETRO


36.
37. }
38.
39. void loop(){
40. int v=digitalRead(2); //LEER VALOR DEL PUSH
41. //SI SE OPRIME EL PUSH SE REINICIA CONTADOR
42. if(v==1){
43. limpiar();
44. n=0;
45. delayMicroseconds(500);
46. }
47. //LEER VALOR DEL POTENCIOMETRO
48. int t=analogRead(A0);
49. //DE ACUERDO AL VALOR DE t ES EL RETARDO
50. limpiar(); //LIMPIAR DISPLAY'S
51. digito(1); //HABILITAR DIGITO 1
52. numero((n/x/1000)%10);//OBTENER DIGITO 1
53. delayMicroseconds(t);// RETARDO
54. limpiar();
55. digito(2);//HABILITAR DIGITO 2
56. numero((n/x/100)%10);//OBTENER DIGITO 2
57. delayMicroseconds(t);
58. limpiar();
59. digito(3);//HABILITAR DIGITO 3
60. numero((n/x/10)%10);//OBTENER DIGITO 2
61. delayMicroseconds(t);
62. limpiar();
63. digito(4);//HABILITAR DIGITO 4
64. numero(n/x % 10); //OBTENER DIGITO 4
65. delayMicroseconds(t);
66. if(n/x > 9999){ //SI LLEGA A 9999 SE REINICIAR
67. n = 0;
68. delay(5000);
69. }
70. else n++;
71. }
72. // FUNCION PARA HABILITAR DIGITO A IMPRIMIR
73. void digito(int x){
74. digitalWrite(13, HIGH); // dig 1
75. digitalWrite(12, HIGH); // dig 2
76. digitalWrite( 9, HIGH); // dig 3
Código
SISTEMAS MICROCONTROLADOS
Página 7 de 10

77. digitalWrite( 8, HIGH); // dig 4


78. //DE ACUERDO AL VALOR SE HABILITA DIGITO
79. switch(x){
80. case 1: digitalWrite(13, LOW); break;
81. case 2: digitalWrite(12, LOW); break;
82. case 3: digitalWrite(9, LOW); break;
83. case 4: digitalWrite(8, LOW); break;
84. }
85. }
86. //DE ACUERDO AL VALOR SE IMPRIME DIGITO EN DISPLAY
87. void numero(int x){
88. switch(x){
89. case 1: uno(); break;
90. case 2: dos(); break;
91. case 3: tres(); break;
92. case 4: cuatro(); break;
93. case 5: cinco(); break;
94. case 6: seis(); break;
95. case 7: siete(); break;
96. case 8: ocho(); break;
97. case 9: nueve(); break;
98. default: cero(); break;
99. }
100. }
101. //FUNCION LIMPIAR DIGITO, TODOS LOS LEDS APAGADOS
102. void limpiar(){
103. digitalWrite( 5, LOW); // A
104. digitalWrite( 7, LOW); // B
105. digitalWrite( 4, LOW); // C
106. digitalWrite(11, LOW); // D
107. digitalWrite(10, LOW); // E
108. digitalWrite( 3, LOW); // F
109. digitalWrite( 6, LOW); // G
110. }
111.
112. //FUNCIONES DE NUMEROS PARA DISPLAY
113. void cero(){
114. digitalWrite(a,HIGH);
115. digitalWrite(b,HIGH);
116. digitalWrite(c,HIGH);
117. digitalWrite(d,HIGH);
118. digitalWrite(e,HIGH);
Código
SISTEMAS MICROCONTROLADOS
Página 8 de 10

119. digitalWrite(f,HIGH);
120. digitalWrite(g,LOW);
121. }
122. void uno(){
123. digitalWrite(a,LOW);
124. digitalWrite(b,HIGH);
125. digitalWrite(c,HIGH);
126. digitalWrite(d,LOW);
127. digitalWrite(e,LOW);
128. digitalWrite(f,LOW);
129. digitalWrite(g,LOW);
130. }
131. void dos(){
132. digitalWrite(a,HIGH);
133. digitalWrite(b,HIGH);
134. digitalWrite(c,LOW);
135. digitalWrite(d,HIGH);
136. digitalWrite(e,HIGH);
137. digitalWrite(f,LOW);
138. digitalWrite(g,HIGH);
139. }
140. void tres(){
141. digitalWrite(a,HIGH);
142. digitalWrite(b,HIGH);
143. digitalWrite(c,HIGH);
144. digitalWrite(d,HIGH);
145. digitalWrite(e,LOW);
146. digitalWrite(f,LOW);
147. digitalWrite(g,HIGH);
148. }
149. void cuatro(){
150. digitalWrite(a,LOW);
151. digitalWrite(b,HIGH);
152. digitalWrite(c,HIGH);
153. digitalWrite(d,LOW);
154. digitalWrite(e,LOW);
155. digitalWrite(f,HIGH);
156. digitalWrite(g,HIGH);
157. }
158. void cinco(){
159. digitalWrite(a,HIGH);
160. digitalWrite(b,LOW);
Código
SISTEMAS MICROCONTROLADOS
Página 9 de 10

161. digitalWrite(c,HIGH);
162. digitalWrite(d,HIGH);
163. digitalWrite(e,LOW);
164. digitalWrite(f,HIGH);
165. digitalWrite(g,HIGH);
166. }
167. void seis(){
168. digitalWrite(a,HIGH);
169. digitalWrite(b,LOW);
170. digitalWrite(c,HIGH);
171. digitalWrite(d,HIGH);
172. digitalWrite(e,HIGH);
173. digitalWrite(f,HIGH);
174. digitalWrite(g,HIGH);
175. }
176. void siete(){
177. digitalWrite(a,HIGH);
178. digitalWrite(b,HIGH);
179. digitalWrite(c,HIGH);
180. digitalWrite(d,LOW);
181. digitalWrite(e,LOW);
182. digitalWrite(f,LOW);
183. digitalWrite(g,HIGH);
184. }
185. void ocho(){
186. digitalWrite(a,HIGH);
187. digitalWrite(b,HIGH);
188. digitalWrite(c,HIGH);
189. digitalWrite(d,HIGH);
190. digitalWrite(e,HIGH);
191. digitalWrite(f,HIGH);
192. digitalWrite(g,HIGH);
193. }
194. void nueve(){
195. digitalWrite(a,HIGH);
196. digitalWrite(b,HIGH);
197. digitalWrite(c,HIGH);
198. digitalWrite(d,HIGH);
199. digitalWrite(e,LOW);
200. digitalWrite(f,HIGH);
201. digitalWrite(g,HIGH);
202. }
Código
SISTEMAS MICROCONTROLADOS
Página 10 de 10

203. void aa(){


204. digitalWrite(a,HIGH);
205. digitalWrite(b,HIGH);
206. digitalWrite(c,HIGH);
207. digitalWrite(d,LOW);
208. digitalWrite(e,HIGH);
209. digitalWrite(f,HIGH);
210. digitalWrite(g,HIGH);
211. }
212. void bb(){
213. digitalWrite(a,LOW);
214. digitalWrite(b,LOW);
215. digitalWrite(c,HIGH);
216. digitalWrite(d,HIGH);
217. digitalWrite(e,HIGH);
218. digitalWrite(f,HIGH);
219. digitalWrite(g,HIGH);
220. }
221. void cc(){
222. digitalWrite(a,HIGH);
223. digitalWrite(b,LOW);
224. digitalWrite(c,LOW);
225. digitalWrite(d,HIGH);
226. digitalWrite(e,HIGH);
227. digitalWrite(f,HIGH);
228. digitalWrite(g,LOW);
229. }
230. void dd(){
231. digitalWrite(a,LOW);
232. digitalWrite(b,HIGH);
233. digitalWrite(c,HIGH);
234. digitalWrite(d,HIGH);
235. digitalWrite(e,HIGH);
236. digitalWrite(f,LOW);
237. digitalWrite(g,HIGH);
238. }
239. void ee(){
240. digitalWrite(a,HIGH);
241. digitalWrite(b,LOW);
242. digitalWrite(c,LOW);
243. digitalWrite(d,HIGH);
244. digitalWrite(e,HIGH);
Código
SISTEMAS MICROCONTROLADOS
Página 11 de 10

245. digitalWrite(f,HIGH);
246. digitalWrite(g,HIGH);
247. }
248. void ff(){
249. digitalWrite(a,HIGH);
250. digitalWrite(b,LOW);
251. digitalWrite(c,LOW);
252. digitalWrite(d,LOW);
253. digitalWrite(e,HIGH);
254. digitalWrite(f,HIGH);
255. digitalWrite(g,HIGH);
256. }
Código
SISTEMAS MICROCONTROLADOS
Página 12 de 10
Código
SISTEMAS MICROCONTROLADOS
Página 13 de 10

257. CONCLUSIONES

El laboratorio nos enseñó las amplias funciones que cumple un microcontrolador en


este caso en el arduino uno , atraves del cual se pudo realizar un código que nos
sirva como contador en un sistema decimal, que cuenta de 0 al 999.

258. RECOMENDACIONES

Conocer el arduino las entradas y salidas que tiene al igual que los pines que posee.
Verificar que el displays de 7 segmentos este trabajando en anodo común o catodo
común. Al igual que conocer los pines con los que pude encender cada led para
formar los números. En el momento de ir haciendo el código definir bien las variables
ya que puede suceder problemas al momento de copilarla

También podría gustarte