LUCI STOP E FRECCE Alla Tua Bici Elettrica Con Arduino E SENZA BATTERIE Esterne
by Maurizio Miscio in Circuits > Arduino
89 Views, 0 Favorites, 0 Comments
LUCI STOP E FRECCE Alla Tua Bici Elettrica Con Arduino E SENZA BATTERIE Esterne


Aggiungere LUCI STOP e FRECCE alla Tua Bici Elettrica con Arduino e SENZA BATTERIE esterne
Benvenuti nel mio canale! In questo video, vi mostrerò come ho costruito e installato un fanale posteriore per la mia bici elettrica utilizzando Arduino, completo di luci di stop e indicatori di direzione. La parte migliore? Funziona senza batterie esterne, utilizzando direttamente l'alimentazione della bici!
Se sei un appassionato di fai-da-te, tecnologia e biciclette elettriche, questo progetto è perfetto per te! Migliora la visibilità e la sicurezza della tua bici aggiungendo funzionalità avanzate senza complicazioni.
Non dimenticate di lasciare un like, iscrivervi al canale e attivare le notifiche per non perdere i prossimi video! Se avete domande o suggerimenti, lasciate un commento qui sotto.
Grazie per la visione e buon divertimento con il fai-da-te!
#BiciElettrica #Arduino #FaiDaTe #LuciStop #IndicatoriDiDirezione #BiciElettricaUpgrade #SicurezzaInBici #Tecnologia #DIY
Supplies
Arduino
bici elettrica
2 led per le frecce (anche 4)
Fanale posteriore comprato a pochi denari
Codice Per Arduino:
// Definizione dei pin
const int pinLEDPosteriore = 9; // Pin PWM per i LED posteriori
const int pinFreno = 2; // Pin digitale per il segnale del freno
const int pinFrecciaDestra = 6; // Pin digitale per il segnale della freccia destra
const int pinFrecciaSinistra = 5; // Pin digitale per il segnale della freccia sinistra
const int pinFrecciaDestraLED = 3; // Pin digitale per i LED della freccia destra
const int pinFrecciaSinistraLED = 4; // Pin digitale per i LED della freccia sinistra
// Variabili per lo stato dei segnali
bool frenoAttivo = false;
bool frecciaDestraAttiva = false;
bool frecciaSinistraAttiva = false;
// Variabili per il lampeggiamento delle frecce
unsigned long ultimoTempoFreccia = 0;
const int intervalloLampeggio = 500; // Intervallo di lampeggio in millisecondi
// Variabili per il timer delle frecce
unsigned long tempoInizioFrecciaDestra = 0;
unsigned long tempoInizioFrecciaSinistra = 0;
const unsigned long durataFreccia = 15000; // Durata del lampeggio delle frecce in millisecondi (30 secondi)
void setup() {
// Impostazione dei pin come input o output con pull-up
pinMode(pinLEDPosteriore, OUTPUT);
pinMode(pinFreno, INPUT_PULLUP);
pinMode(pinFrecciaDestra, INPUT_PULLUP);
pinMode(pinFrecciaSinistra, INPUT_PULLUP);
pinMode(pinFrecciaDestraLED, OUTPUT);
pinMode(pinFrecciaSinistraLED, OUTPUT);
}
void loop() {
// Lettura degli input
frenoAttivo = !digitalRead(pinFreno);
bool segnaleFrecciaDestra = !digitalRead(pinFrecciaDestra);
bool segnaleFrecciaSinistra = !digitalRead(pinFrecciaSinistra);
// Gestione delle frecce
if (segnaleFrecciaDestra) {
frecciaDestraAttiva = true;
frecciaSinistraAttiva = false;
tempoInizioFrecciaDestra = millis();
}
if (segnaleFrecciaSinistra) {
frecciaSinistraAttiva = true;
frecciaDestraAttiva = false;
tempoInizioFrecciaSinistra = millis();
}
// Controllo del LED posteriore
if (frenoAttivo) {
analogWrite(pinLEDPosteriore, 255); // 100% luminosità
} else {
analogWrite(pinLEDPosteriore, 128); // 50% luminosità
}
// Controllo delle frecce lampeggianti
unsigned long tempoCorrente = millis();
// Gestione del timer per la freccia destra
if (frecciaDestraAttiva && (tempoCorrente - tempoInizioFrecciaDestra >= durataFreccia)) {
frecciaDestraAttiva = false;
digitalWrite(pinFrecciaDestraLED, LOW); // Spegni LED dopo 30 secondi
}
// Gestione del timer per la freccia sinistra
if (frecciaSinistraAttiva && (tempoCorrente - tempoInizioFrecciaSinistra >= durataFreccia)) {
frecciaSinistraAttiva = false;
digitalWrite(pinFrecciaSinistraLED, LOW); // Spegni LED dopo 30 secondi
}
if (tempoCorrente - ultimoTempoFreccia >= intervalloLampeggio) {
ultimoTempoFreccia = tempoCorrente;
// Lampeggio freccia destra
if (frecciaDestraAttiva) {
digitalWrite(pinFrecciaDestraLED, !digitalRead(pinFrecciaDestraLED)); // Inversione stato LED
} else {
digitalWrite(pinFrecciaDestraLED, LOW); // Spegni LED
}
// Lampeggio freccia sinistra
if (frecciaSinistraAttiva) {
digitalWrite(pinFrecciaSinistraLED, !digitalRead(pinFrecciaSinistraLED)); // Inversione stato LED
} else {
digitalWrite(pinFrecciaSinistraLED, LOW); // Spegni LED
}
}
}