Salidas Digitales
El desarrollo de este ejemplo se enfoca en el control de pines de salida digital para encender y apagar LEDs, así como la implementación de secuencias lógicas sencillas.
Esquema de conexión
Código
Ejemplo:
Puedes acceder al código de ejemplo, siguiendo la ruta:
Archivo -> Ejemplos -> Unit_SketchLab -> Blink
Nota: El código mostrado funciona para el LED integrado en la tarjeta de desarrollo, ubicado en el pin 34. Para entender el funcionamiento de las salidas, cambia LED_BUILTIN a 33.
#define LED_BUILTIN 34 // 34 to 33
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
// wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
// wait for a second
}
Compilar y correr un programa
Para poder cargar el archivo, configura el entorno con las siguientes especificaciones:
Reloj: 16 Mhz.
Método de carga: USB.
Ajuste de carga a: "Default CDC".
Carga un programa ingresando al modo de BOOT (cargador de arranque). Desconecte el cable USB, presione el botón BOOT en la tarjeta de desarrollo y luego vuelve a conectar a la PC.
Estructura del programa
Función setup():
En la función setup(), se inicializan los pines de salida digital.
void setup() {
pinMode(LED_PIN, OUTPUT);
}
Función loop():
La función loop() contiene el código principal que se ejecuta continuamente.
Se enciende y apaga el LED conectado al pin de salida digital en un ciclo.
void loop() {
digitalWrite(LED_PIN, HIGH); // Encender el LED
delay(1000); // Esperar 1 segundo
digitalWrite(LED_PIN, LOW); // Apagar el LED
delay(1000); // Esperar 1 segundo
}
Implementación de Secuencias Lógicas:
void loop() {
for (int i = 0; i < 3; i++) {
digitalWrite(LED_PIN, HIGH);
delay(500);
digitalWrite(LED_PIN, LOW);
delay(500);
}
delay(1000);
}
Observaciones Adicionales:
void loop() {
for (int i = 0; i < 3; i++) {
digitalWrite(LED_PIN, HIGH);
delay(500);
digitalWrite(LED_PIN, LOW);
delay(500);
}
delay(1000);
}
Este código simple puede servir como punto de partida para explorar y entender el control de salidas digitales en el CH552 mediante Arduino.
Resultados
Visualización con Osciloscopio
En el proceso de exploración y análisis de las salidas digitales, se emplea un osciloscopio para obtener una representación visual precisa. El diagrama siguiente ilustra la conexión de la salida del pin 3.3
al osciloscopio.
Este diagrama captura la frecuencia base, configurada en el código, alcanzando aproximadamente 70 kHz. La representación gráfica revela el intercambio constante entre cambios de instrucciones, proporcionando una visión clara de la dinámica de la señal.
La última imagen destaca el papel fundamental del osciloscopio como herramienta central para la observación y medición precisa de las señales digitales. Su capacidad para ofrecer una representación visual detallada contribuye de manera significativa a un análisis minucioso y eficaz de las salidas digitales en el entorno de desarrollo.
⌨️ con ❤️ por UNIT-Electronics 😊