Realizar un cuadro comparativo de las ventajas y desventajas del uso de los registros del
microcontrolador en la programación de sketches.
Ventajas Desventajas
Permite el cambio de estados de los pines de una La familiarización puede ser un poco complicada
manera rápida al inicio de su uso
Reduce el ciclo de trabajo, es decir que el tiempo El código puede ser más difícil de depurar y
de compilación es mucho menor. mantener, y más difícil de entender.
Mediante las múltiples formas de escribir un Al usar registros es necesario definir todos los
mismo código, se ahorra mucho el número de pines de un puerto. Lo que significaría un gasto
líneas que se deben implementar para que el de memoria si las aplicaciones del código no
programa lleve a cabo una misma acción. necesitan del uso de varios pines.
Simular un circuito que controle un display de 7 segmentos (0-F), utilizando dos pulsadores, uno para
incremento y otro para decremento.
Ilustración 1 Circuito Implementado
Código
//Incremento y Decremento Display 7 segmentps
int espera=600;
int pulsadorIncremento = 10; // Pin botón de incremento
int pulsadorDecremento = 9; // Pin botón de decrecimiento
int valorPulsador1 = 0;
int valorPulsador2 = 0;
void setup()
{
pinMode(pulsadorIncremento, INPUT);
pinMode(pulsadorDecremento, INPUT);
//Declaración pines de salida
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
}
//Funcion para prender display
void display (int a, int b, int c,int d, int e, int f, int g)
{
digitalWrite(2,a);
digitalWrite(3,b);
digitalWrite(4,c);
digitalWrite(5,d);
digitalWrite(6,e);
digitalWrite(7,f);
digitalWrite(8,g);
}
void loop()
{
valorPulsador1 = digitalRead(pulsadorIncremento);
valorPulsador2 = digitalRead(pulsadorDecremento);
if (valorPulsador1==HIGH){
//Incremento
display(1,1,1,1,1,1,0);
delay(espera);
display(0,1,1,0,0,0,0);
delay(espera);
display(1,1,0,1,1,0,1);
delay(espera);
display(1,1,1,1,0,0,1);
delay(espera);
display(0,1,1,0,0,1,1);
delay(espera);
display(1,0,1,1,0,1,1);
delay(espera);
display(1,0,1,1,1,1,1);
delay(espera);
display(1,1,1,0,0,0,0);
delay(espera);
display(1,1,1,1,1,1,1);
delay(espera);
display(1,1,1,1,0,1,1);
delay(espera);
display(1,1,1,0,1,1,1);
delay(espera);
display(0,0,1,1,1,1,1);
delay(espera);
display(1,0,0,1,1,1,0);
delay(espera);
display(0,1,1,1,1,0,1);
delay(espera);
display(1,0,0,1,1,1,1);
delay(espera);
display(1,0,0,0,1,1,1);
delay(espera);
}else if(valorPulsador2==HIGH){
//Decrecimiento
display(1,0,0,0,1,1,1);
delay(espera);
display(1,0,0,1,1,1,1);
delay(espera);
display(0,1,1,1,1,0,1);
delay(espera);
display(1,0,0,1,1,1,0);
delay(espera);
display(0,0,1,1,1,1,1);
delay(espera);
display(1,1,1,0,1,1,1);
delay(espera);
display(1,1,1,1,0,1,1);
delay(espera);
display(1,1,1,1,1,1,1);
delay(espera);
display(1,1,1,0,0,0,0);
delay(espera);
display(1,0,1,1,1,1,1);
delay(espera);
display(1,0,1,1,0,1,1);
delay(espera);
display(0,1,1,0,0,1,1);
delay(espera);
display(1,1,1,1,0,0,1);
delay(espera);
display(1,1,0,1,1,0,1);
delay(espera);
display(0,1,1,0,0,0,0);
delay(espera);
display(1,1,1,1,1,1,0);
delay(espera);
}else{
}
}
Conclusiones
Como en cualquier otro lenguaje de programación, los lazos o bucles son una
herramienta muy importante e útil al momento de acortar procesos y hacer que el
programa sea mucho más corto. En la práctica es de gran ayuda un lazo for para
declarar muchos pines al mismo tiempo como salidas, haciendo que el trabajo sea
mucho menor.
La automatización de procesos en el día a día es muy útil, por lo que cada vez se siguen
desarrollando herramientas y aplicaciones más completas y fáciles de entender, un
ejemplo de ello es el mismo Arduino junto con todas sus extensiones, como librerías,
shields, etc.
Recomendaciones
Es sumamente útil el uso de lazos y bucles para lograr acortar el número de líneas de
código, ayudando a que el código sea más entendible para cualquier persona que lo lea.
Referencias
[1] "Puertos Digitales Arduino Avanzado", Aprendiendo Arduino. [Online]. Available:
https://aprendiendoarduino.wordpress.com/2017/09/03/puertos-digitales-arduino-vanzado/.
[Accessed: 16/12/2020].
[2]"Arduino - IoT -Prime", Arduino.cc, 2020. [Online]. Available:
https://www.arduino.cc/en/Kits/IoT-Prime. [Accessed: 16/12/2020].