// ---------------------------------------------------------------------------
// (| "Luces_Policia_Attiny85.ino "|)
// (| " "|)
// (| " Este código de ejemplo es de dominio público. "|)
// (| " "|)
// (| " Maker/Developer: jorgechac© - Técnico Laboral en Programación UNAB "|)
// (| " Visita https://jorgechac.blogspot.com "|)
// (| " "|)
// (| " Venta de accesorios Arduino/Raspberry Pi Pico/ESP32 "|)
// (| " Whatsapp y Ventas NEQUI +573177295861 "|)
// (| " Bucaramanga - Colombia "|)
// (| " "|)
// (| " Simulación: https://wokwi.com/projects/382522464759782401 "|)
// (| " Descarga gratis este sketch en: "|)
// (| " https://create.arduino.cc/editor/jorgechac/ "|)
// ---------------------------------------------------------------------------
#include "Arduino.h" // directiva de preprocesador que incluye el archivo de
// encabezado "Arduino.h" Este archivo es parte del
// entorno de desarrollo de Arduino y proporciona
// definiciones y funciones básicas necesarias para
// programar en Arduino
#include <EEPROM.h> // directiva de preprocesador que incluye el archivo de
// encabezado "EEPROM.h" Este archivo permite el uso de
// funciones relacionadas con la EEPROM de Arduino
#define LED_PIN1 1 // LED 1 - D1
#define LED_PIN2 2 // LED 2 - D2
#define LED_PIN3 3 // LED 3 - D3
#define LED_PIN4 4 // LED 4 - D4
#define buttonPin 0 // Push Button Pin - D0
int SPEED = 60; // velocidad a la que los leds parpadearan
int numb = 1;
int pres = 0;
void setup() {
EEPROM.update(0, 1); // *IMPORTANTE* - Corra esta línea de código SÓLO
// la primera vez. Luego comentalo y vuelve a subir
// el código.
numb = EEPROM.read(0); // se lee el valor almacenado en la EEPROM para
// determinar el patrón de iluminación actual
pinMode(buttonPin, INPUT); // se inicializa el pin D0 como entrada
pinMode(LED_PIN1, OUTPUT); // se inicializa el pin D1 como salida
pinMode(LED_PIN2, OUTPUT); // se inicializa el pin D2 como salida
pinMode(LED_PIN3, OUTPUT); // se inicializa el pin D3 como salida
pinMode(LED_PIN4, OUTPUT); // se inicializa el pin D4 como salida
}
void loop() {
ButtonScan(); // escanea el botón y selecciona un patrón de iluminación
// según el valor de <numb> cada patrón está implementado en
// funciones separadas
switch (numb) {
case 1:
HAZI_TECH_VIP_1();
break;
case 2:
HAZI_TECH_VIP_2();
break;
case 3:
HAZI_TECH_VIP_3();
break;
case 4:
HAZI_TECH_VIP_4();
break;
case 5:
HAZI_TECH_VIP_5();
break;
case 6:
HAZI_TECH_VIP_6();
break;
case 7:
HAZI_TECH_VIP_7();
break;
case 8:
HAZI_TECH_VIP_8();
break;
case 9:
HAZI_TECH_VIP_2();
HAZI_TECH_VIP_3();
HAZI_TECH_VIP_4();
HAZI_TECH_VIP_4();
HAZI_TECH_VIP_4();
HAZI_TECH_VIP_5();
HAZI_TECH_VIP_5();
HAZI_TECH_VIP_6();
HAZI_TECH_VIP_6();
HAZI_TECH_VIP_6();
HAZI_TECH_VIP_6();
HAZI_TECH_VIP_6();
HAZI_TECH_VIP_7();
HAZI_TECH_VIP_7();
HAZI_TECH_VIP_7();
HAZI_TECH_VIP_7();
HAZI_TECH_VIP_7();
HAZI_TECH_VIP_8();
HAZI_TECH_VIP_8();
HAZI_TECH_VIP_8();
HAZI_TECH_VIP_8();
HAZI_TECH_VIP_8();
break;
default:
HAZI_TECH_VIP_1();
break;
}
}
void HAZI_TECH_VIP_1() {
ButtonScan();
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN2, LOW);
digitalWrite(LED_PIN3, LOW);
digitalWrite(LED_PIN4, LOW);
}
void HAZI_TECH_VIP_2() {
digitalWrite(LED_PIN1, HIGH);
digitalWrite(LED_PIN2, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN2, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, HIGH);
digitalWrite(LED_PIN2, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN2, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, HIGH);
digitalWrite(LED_PIN2, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN2, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN3, HIGH);
digitalWrite(LED_PIN4, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN3, LOW);
digitalWrite(LED_PIN4, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN3, HIGH);
digitalWrite(LED_PIN4, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN3, LOW);
digitalWrite(LED_PIN4, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN3, HIGH);
digitalWrite(LED_PIN4, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN3, LOW);
digitalWrite(LED_PIN4, LOW);
delay(SPEED);
ButtonScan();
}
void HAZI_TECH_VIP_3() {
digitalWrite(LED_PIN1, HIGH);
digitalWrite(LED_PIN3, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN3, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, HIGH);
digitalWrite(LED_PIN3, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN3, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, HIGH);
digitalWrite(LED_PIN3, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN3, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, HIGH);
digitalWrite(LED_PIN4, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, LOW);
digitalWrite(LED_PIN4, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, HIGH);
digitalWrite(LED_PIN4, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, LOW);
digitalWrite(LED_PIN4, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, HIGH);
digitalWrite(LED_PIN4, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, LOW);
digitalWrite(LED_PIN4, LOW);
delay(SPEED);
ButtonScan();
}
void HAZI_TECH_VIP_4() {
digitalWrite(LED_PIN1, HIGH);
digitalWrite(LED_PIN4, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN4, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, HIGH);
digitalWrite(LED_PIN4, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN4, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, HIGH);
digitalWrite(LED_PIN4, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN4, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, HIGH);
digitalWrite(LED_PIN3, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, LOW);
digitalWrite(LED_PIN3, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, HIGH);
digitalWrite(LED_PIN3, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, LOW);
digitalWrite(LED_PIN3, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, HIGH);
digitalWrite(LED_PIN3, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, LOW);
digitalWrite(LED_PIN3, LOW);
delay(SPEED);
ButtonScan();
}
void HAZI_TECH_VIP_5() {
digitalWrite(LED_PIN1, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN3, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN3, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN3, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN3, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN3, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN3, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN4, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN4, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN4, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN4, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN4, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN4, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN3, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN3, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN3, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN3, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN3, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN3, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, LOW);
delay(SPEED);
ButtonScan();
}
void HAZI_TECH_VIP_6() {
digitalWrite(LED_PIN1, HIGH);
digitalWrite(LED_PIN2, HIGH);
digitalWrite(LED_PIN3, HIGH);
digitalWrite(LED_PIN4, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN2, LOW);
digitalWrite(LED_PIN3, LOW);
digitalWrite(LED_PIN4, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, HIGH);
digitalWrite(LED_PIN2, HIGH);
digitalWrite(LED_PIN3, HIGH);
digitalWrite(LED_PIN4, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN2, LOW);
digitalWrite(LED_PIN3, LOW);
digitalWrite(LED_PIN4, LOW);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, HIGH);
digitalWrite(LED_PIN2, HIGH);
digitalWrite(LED_PIN3, HIGH);
digitalWrite(LED_PIN4, HIGH);
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN2, LOW);
digitalWrite(LED_PIN3, LOW);
digitalWrite(LED_PIN4, LOW);
delay(SPEED);
ButtonScan();
delay(SPEED);
ButtonScan();
delay(SPEED);
ButtonScan();
}
void HAZI_TECH_VIP_7() {
digitalWrite(LED_PIN1, HIGH);
digitalWrite(LED_PIN2, LOW);
delay(SPEED);
ButtonScan();
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, HIGH);
digitalWrite(LED_PIN1, LOW);
delay(SPEED);
ButtonScan();
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN3, HIGH);
digitalWrite(LED_PIN2, LOW);
delay(SPEED);
ButtonScan();
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN4, HIGH);
digitalWrite(LED_PIN3, LOW);
delay(SPEED);
ButtonScan();
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN3, HIGH);
digitalWrite(LED_PIN4, LOW);
delay(SPEED);
ButtonScan();
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN2, HIGH);
digitalWrite(LED_PIN3, LOW);
delay(SPEED);
ButtonScan();
delay(SPEED);
ButtonScan();
}
void HAZI_TECH_VIP_8() {
digitalWrite(LED_PIN1, HIGH);
digitalWrite(LED_PIN2, HIGH);
delay(SPEED);
ButtonScan();
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN2, LOW);
delay(SPEED);
ButtonScan();
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN3, HIGH);
digitalWrite(LED_PIN4, HIGH);
delay(SPEED);
ButtonScan();
delay(SPEED);
ButtonScan();
digitalWrite(LED_PIN3, LOW);
digitalWrite(LED_PIN4, LOW);
delay(SPEED);
ButtonScan();
delay(SPEED);
ButtonScan();
}
void ButtonScan() {
if (digitalRead(buttonPin) == 1) {
if (pres == 0) {
numb++;
EEPROM.update(0, numb);
pres = 1;
digitalWrite(LED_PIN1, HIGH);
digitalWrite(LED_PIN2, HIGH);
digitalWrite(LED_PIN3, HIGH);
digitalWrite(LED_PIN4, HIGH);
delay(750);
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN2, LOW);
digitalWrite(LED_PIN3, LOW);
digitalWrite(LED_PIN4, LOW);
}
} else {
pres = 0;
}
if (numb == 10) {
numb = 1;
}
}