Costruzione Impianto Luci 1w - Pagina 2 - BaroneRosso.it - Forum Modellismo

Torna indietro   BaroneRosso.it - Forum Modellismo > Elettronica > Circuiti Elettronici


Rispondi
 
Strumenti discussione Visualizzazione
Vecchio 26 novembre 15, 09:45   #11 (permalink)  Top
User
 
L'avatar di CarloRoma63
 
Data registr.: 08-08-2011
Residenza: Roma
Messaggi: 5.805
Citazione:
Originalmente inviato da eaman Visualizza messaggio
Be' se ci sono da pilotare vie di led diverse magari invece che usare tanti transistor/mosfet si potrebbe usare uno di questi:
- 10pcs ULN2803 ULN2803A ULN2803APG 2803 DIP18 NEW ORIGINAL SHORT LEADTIME-in Integrated Circuits from Electronic Components & Supplies on Aliexpress.com | Alibaba Group
- https://www.sparkfun.com/products/312

Li danno fino a 500mah, se non ricordo male i LEDdoni girano intorno ai 300/400mah.
Mai usati ma al prossimo ordine ne compro un po' per provarli.
Si, è il componente adatto allo scopo. In questo progetto può sostituire perfettamente i TIP120 o i BS170.
I led da 1 W assorbono 350 mA ma, se alimentati con i mr16, l'assobimento dipende dalla tensione di alimentazione. Se si usa una batteria S3, il consumo dovrebbe scendere a non oltre 150 mA.

Alex, ti rispondo quì al tuo PM. Si tratta di info di utilità pubblica, quindi questa è la sede più opportuna.

Arduino è una "scatola vuota", senza programma non sa fare nulla. Per istruirlo su cosa fare occorre scrivere un programma e caricarlo nella sua memoria.
Arduino deve essere alimentato a 5V, quindi gli occorre un 7805 dedicato. Questo è indipendente dalla alimentazione dei led. Nel tuo caso specifico, i led (nel loro insieme) assorbono più corrente di quanta ne possa erogare un singolo 7805, quindi occorre definire una modalità di alimentazione separata. Le strade possibili sono molte, ma la più efficiente è l'utilizzo di un mr16 per ogni led.

Carlo
__________________
Dai un pesce ad un uomo e lo avrai sfamato per un giorno, insegnagli a pescare e lo avrai sfamato per sempre. (Confucio)
I miei modelli: http://www.youtube.com/results?search_query=carloroma63
CarloRoma63 non è collegato   Rispondi citando
Vecchio 26 novembre 15, 09:55   #12 (permalink)  Top
User
 
L'avatar di CarloRoma63
 
Data registr.: 08-08-2011
Residenza: Roma
Messaggi: 5.805
Citazione:
Originalmente inviato da CarloRoma63 Visualizza messaggio
Arduino è una "scatola vuota", senza programma non sa fare nulla. Per istruirlo su cosa fare occorre scrivere un programma e caricarlo nella sua memoria.Carlo
Ecco il programma che uso sul Titanic. Fa molte cose:
- riceve i canali dalla radio, li interpreta e aziona i dispositivi di bordo
- controlla lo stato delle due batterie ed avvisa in caso di batterie scarche
- controlla il funzionamento dei bruciatori dei camini, avvisando in caso di assorbimenti anomali
- trasmette via seriale i dati di funzionamento (a scopo di debug)

il programma non è finito ma è funzionante. E' abbastanza commentato e quindi è comprensibile cosa fanno le varie parti

Carlo

/*
Programma di gestione del Titanic.
Gestisce l'argano salpa ancora, la sirena, il generatore di fumo ed il relativo ventilatore. misura le tensioni delle batterie, accende le luci di via e di sala.
In caso di problemi emette segnali acustici specifici.

*/



// ingressi analogici
byte sensorPin0 = A0; // Input per la misura della tensione della batteria motore
byte sensorPin1 = A1; // Input per la misura della tensione della batteria servizi
byte sensorPin2 = A2; // Input per la misura della tensione della corrente camini

// ingressi canali radio
byte pinCH1 = 2; // motore
byte pinCH2 = 4; // luci di via
byte pinCH3 = 12; // luci sala
byte pinCH4 = 7; // sirena
byte pinCH5 = 8; // salpa ancora
unsigned int durationCH1;
unsigned int durationCH2;
unsigned int durationCH3;
unsigned int durationCH4;
unsigned int durationCH5;

// Uscite pwm
byte pinVentola = 10; // Ventola
byte pinFumo = 11; // Generatore fumo
byte pinAncoraSu = 3; // Salpa ancora - polo positivo
byte pinAncoraGiu= 5; // Salpa ancora - polo negativo
byte pinBuzzer = 9; // altoparlantino

// Uscite digitali

byte pinSala = 6; // Luci di sala
byte pinVia = 13; // Luci di via

//

// Variabili e costanti
// sensori analogici
int sensorValue0 = 0; // tensione batteria motore
int sensorValue1 = 0; // tensione batteria servizi
int sensorValue2 = 0; // corrente camini
const float Trim0 = 0.78; //parametro di conversione tensione batteria motore
const float Trim1 = 1.19; //parametro di conversione tensione batteria servizi
const float Trim2 = 4.7; //parametro di conversione corrente camini.
const unsigned long massimo0 = 1000; // soglia massima della corrente assorbita dal generatore di fumo.
const unsigned long minimo0 = 600;// soglia minima della corrente assorbita dal generatore di fumo.
const unsigned long minimo1 = 900;// soglia di allarme per la tensione della batteria servizi
const unsigned long minimo2 = 600; // soglia di allarme per la tensione della batteria motore
// soglia di comando dei canali radio

const unsigned long sogliaCH2 = 1500;
const unsigned long sogliaCH3 = 1500;
const unsigned long sogliaCH4 = 1500;
const unsigned long sogliaCH5a = 1700; // salpa ancora in salita
const unsigned long sogliaCH5b = 1200; // salpa ancora in discesa

// variabili di appoggio generatore di fumo
int valFumo = 0;
int valFumoAtteso = 0;
int valVentola = 0;
int valMotore = 0;
int valMassimo = 220;
// variabile per contenere la velocità di funzionamento del salpa ancora.
int valAncora = 0;


void setup() {
// definisco i canai di input dalla radio
pinMode(pinCH1, INPUT); // clone del motore, usato per il generatore di fumo
pinMode(pinCH2, INPUT); // Luci di via
pinMode(pinCH3, INPUT); // luci saloni
pinMode(pinCH4, INPUT); // sirena
pinMode(pinCH5, INPUT); // salpa ancora

// stappo i condotti dell'aria azionando per tre secondi la ventola alla massima velocità.
analogWrite(pinVentola, 255);
analogWrite(pinFumo, 220); // regolare il valore per la corrente massima sopportata dai camini
delay (3000);
analogWrite(pinVentola, 0);
analogWrite(pinFumo, 0);
tone(pinBuzzer,500,100);
delay (100);
tone(pinBuzzer,600,100);
delay (100);
tone(pinBuzzer,700,100);
delay (100);
tone(pinBuzzer,800,100);
delay (100);
tone(pinBuzzer,900,100);
delay (100);
// inizializzo la seriale
Serial.begin(9600);
Serial.println("Sistema avviato.");

}

void loop() {
// Leggo i valori dei sensori:
sensorValue0 = analogRead(sensorPin0);
sensorValue0=sensorValue0*Trim0;
sensorValue1 = analogRead(sensorPin1);
sensorValue1=sensorValue1*Trim1;
sensorValue2 = analogRead(sensorPin2);
sensorValue2=sensorValue2*Trim2;

// verifico le tensioni di batteria

// Batteria motore: carica a 8,4V e scarica a 6,0V
if ( sensorValue0<600){
// beep per Batteria motore scarica
tone(pinBuzzer,1000,100);
delay(100);
Serial.println("Batteria motore scarica!");
}

// batteria servizi, carica a 12,6V e scarica a 9,0V
if ( sensorValue1<900){
// beep per Batteria servizi scarica
tone(pinBuzzer,1500,100);
delay(100);
Serial.println("Batteria servizi scarica!");

}

// leggo i canali radio
durationCH1 = pulseIn(pinCH1, HIGH);
if ( durationCH1>0){ // verifico che la radio sia accesa.
durationCH2 = pulseIn(pinCH2, HIGH);
durationCH3 = pulseIn(pinCH3, HIGH);
durationCH4 = pulseIn(pinCH4, HIGH);
durationCH5 = pulseIn(pinCH5, HIGH);


// Potenza del generatore di fumo
// Riceve il canale del motore (ch1, clone del ch8 se abilitato dallo switch ELE, altrimenti fisso a -100) e lo usa per regolare la potenza erogata
// riceve il segnale della corrente assorbita (sensore 2)
// comanda sia il generatore che la ventola
if ( durationCH1>1000){ // verifico che il fumo sia abilitato

/* if (valFumo>0 and sensorValue2<50){ // verifico se il generatore di fumo assorbe corrente. In caso negativo emetto segnale acustico come allarme.
tone(pinBuzzer,2500,100);
Serial.println("Generatore di fumo guasto!");
delay(100);
}
*/
if (valFumo>0 and sensorValue2>massimo0){ // verifico se il generatore di fumo assorbe troppa corrente. In caso positivo abbasso il valore massimo del pwm.
valMassimo=valMassimo-1;
}
valMotore = durationCH1 - 1455;
valFumoAtteso = abs(valMotore);
valVentola = map(valFumoAtteso,0,100,100,250); // verificare valori delle formule in base ai dati reali
if (valVentola > 255) { valVentola=255; }
valFumo = map(valFumoAtteso,0,100,70,valMassimo); //sostituire con la riga precedente quando verrà attivato il sensore di corrente.
if (valFumo > valMassimo) { valFumo=valMassimo; }

analogWrite(pinVentola, valVentola);
analogWrite(pinFumo, valFumo);

}else{ // Interrutto ELE in OFF, fumo spento.

analogWrite(pinVentola, 0);
analogWrite(pinFumo, 0);
}



// Salpa ancora. E' pilotato dal CH5, confrontato con le due soglie sogliaCH5a e sogliaCH5b

// imposto a OFF entrambi i canali del ponte ad H
analogWrite(pinAncoraSu, 0);
analogWrite(pinAncoraGiu, 0);

// calcolo la velocità di rotazione dell'argano in funzione del valore proveniente dalla radio.
// in questo modo posso regolare la velocità senza dover ricompilare lo sketch
valAncora = durationCH5 - 1455;

// eseguo la comparazione ed attivo il corrispondente canale del ponte ad H
if (durationCH5>sogliaCH5a) { // Ancora su.
analogWrite(pinAncoraSu, abs(valAncora)/10);
Serial.println("Ancora SU!");
};
if (durationCH5<sogliaCH5b) { // Ancora giù.
analogWrite(pinAncoraGiu, abs(valAncora)/10);
Serial.println("Ancora GIU!");
};



// sirena
if (durationCH4>sogliaCH4) { // Sirena.
tone(pinBuzzer,300);
}else{
noTone(pinBuzzer);
};


// luci di via
if (durationCH2>sogliaCH2) { // luci di via.
analogWrite(pinVia, 255);
}else{
analogWrite(pinVia, 0);
};


// luci di sala
if (durationCH3>sogliaCH3) { // luci di sala.
analogWrite(pinSala, 255);
}else{
analogWrite(pinSala, 0);
};

}else{
// beep per radio spenta
tone(pinBuzzer,2000,10);
delay(1000);
Serial.println("Radio spenta!");
}

// Serial monitor
if (false) {
Serial.print("Batteria Motore: ");
Serial.println(sensorValue0);
Serial.print("Batteria Servizi: ");
Serial.println(sensorValue1);
Serial.print("Corrente camini: ");
Serial.println(sensorValue2);
Serial.print("Ch1: ");
Serial.println(durationCH1);
Serial.print("Ch2: ");
Serial.println(durationCH2);
Serial.print("Ch3: ");
Serial.println(durationCH3);
Serial.print("Ch4: ");
Serial.println(durationCH4);
Serial.print("Ch5: ");
Serial.println(durationCH5);
Serial.print("valVentola: ");
Serial.println(valVentola);
Serial.print("valFumoAtteso: ");
Serial.println(valFumoAtteso);
Serial.print("valFumo: ");
Serial.println(valFumo);
}
delay(100);
}
__________________
Dai un pesce ad un uomo e lo avrai sfamato per un giorno, insegnagli a pescare e lo avrai sfamato per sempre. (Confucio)
I miei modelli: http://www.youtube.com/results?search_query=carloroma63
CarloRoma63 non è collegato   Rispondi citando
Vecchio 26 novembre 15, 14:26   #13 (permalink)  Top
User
 
Data registr.: 24-08-2008
Residenza: Pisa
Messaggi: 342
Immagini: 1
Wow!!!!
Quindi la miglior strada x alimentare i led sono gli mr16 , quindi assorbeendo 150 mah la luminosita sarà più bassa , non sarà di 1watt ma di circa 0,5 watt..
Quindi quello è il programma che va inserito tramite cavo ad arduino... scrivo ciò che voglio e lui me lo fa...
alexnavigator86 non è collegato   Rispondi citando
Vecchio 26 novembre 15, 15:02   #14 (permalink)  Top
User
 
L'avatar di eaman
 
Data registr.: 22-11-2013
Messaggi: 1.290
Un po' di tempo fa avevo scritto una libreria per Arduino per pilotare le luci degli aerei (blinks, PWM, loops) usando millis() quindi non-blocking: accende LED / i loop da super car e i PWM in multitasking.

tipo:
Codice:
ali.brilla(ogni 30 millisecondi);
coda.brilla(ogni 50 millisecondi);
strisciaDiLed.supercar(in 3 secondi);
altroLed.pwmSuGiu(in2secondi);
Ci doveva essere anche una funzione per parametrizzarli in base all'input di una RX (tipo il throttle).

Se vi interessa gli do' una ripulita e la pubblico.
__________________
v911 - LadyBird - nQX - SuperCP - HFP80 - HCP80 - HCP100 - Devo 7e MoD - Taranis - Heli-X
Wing Wing Z-84 - Bonsai - M. Sonic - Sonic 64 EDF - S.Kinetic - Rare Bear M. - Walrus - Phoenix 2K - M. DLG - Sbach EPP - Extra 330 - Edge 540T - MX2 EPP 955 - Yak - Reaktor - SCT 1/16
eaman non è collegato   Rispondi citando
Vecchio 26 novembre 15, 15:15   #15 (permalink)  Top
User
 
L'avatar di CarloRoma63
 
Data registr.: 08-08-2011
Residenza: Roma
Messaggi: 5.805
Citazione:
Originalmente inviato da alexnavigator86 Visualizza messaggio
Wow!!!!
Quindi la miglior strada x alimentare i led sono gli mr16 , quindi assorbeendo 150 mah la luminosita sarà più bassa , non sarà di 1watt ma di circa 0,5 watt..
Quindi quello è il programma che va inserito tramite cavo ad arduino... scrivo ciò che voglio e lui me lo fa...
No, sempre 1W ottieni. l'mr16 è come un trasformatore CC/CC: in uscita eroga 350mA fissi in un rnge di 3-5V (come richiesto dal carico). In ingresso prende tanta potenza quante glie ne occorre al suo funzionamento (pochissima) + quella che deve trasferire al led.

Carlo
__________________
Dai un pesce ad un uomo e lo avrai sfamato per un giorno, insegnagli a pescare e lo avrai sfamato per sempre. (Confucio)
I miei modelli: http://www.youtube.com/results?search_query=carloroma63
CarloRoma63 non è collegato   Rispondi citando
Vecchio 26 novembre 15, 15:20   #16 (permalink)  Top
User
 
Data registr.: 24-08-2008
Residenza: Pisa
Messaggi: 342
Immagini: 1
Sono cose utili magari se rispolveri la libreria può essere d'aiuto a tutti. ...

LISTA DELLA SPESA :
Se manca qualcosa ditemelo xfavore
1 arduino mini
1 7805 per alimentare arduino
10 ULN2803 O TIP120 O BS170
10/12 LED DA 1WATT 350MHA
10 MR16

manca qualcosa?
Ma serve un cavo specifico per caricare il programma su arduino?
alexnavigator86 non è collegato   Rispondi citando
Vecchio 26 novembre 15, 15:56   #17 (permalink)  Top
User
 
L'avatar di eaman
 
Data registr.: 22-11-2013
Messaggi: 1.290
Citazione:
Originalmente inviato da alexnavigator86 Visualizza messaggio
Sono cose utili magari se rispolveri la libreria può essere d'aiuto a tutti. ...


manca qualcosa?
Ma serve un cavo specifico per caricare il programma su arduino?
Allora stasera comincio a guardare la libreria.

Per l'Arduino mini farebbe comodo un FTDI per programmarla: Arduino Mini Pro - wiki.piffa.net
la nano invece ha la USB.
- 1 Lista materiali &mdash; Lab.piffa.net
__________________
v911 - LadyBird - nQX - SuperCP - HFP80 - HCP80 - HCP100 - Devo 7e MoD - Taranis - Heli-X
Wing Wing Z-84 - Bonsai - M. Sonic - Sonic 64 EDF - S.Kinetic - Rare Bear M. - Walrus - Phoenix 2K - M. DLG - Sbach EPP - Extra 330 - Edge 540T - MX2 EPP 955 - Yak - Reaktor - SCT 1/16
eaman non è collegato   Rispondi citando
Vecchio 26 novembre 15, 16:01   #18 (permalink)  Top
User
 
L'avatar di CarloRoma63
 
Data registr.: 08-08-2011
Residenza: Roma
Messaggi: 5.805
Citazione:
Originalmente inviato da alexnavigator86 Visualizza messaggio
Sono cose utili magari se rispolveri la libreria può essere d'aiuto a tutti. ...

LISTA DELLA SPESA :
Se manca qualcosa ditemelo xfavore
1 arduino mini
1 7805 per alimentare arduino
10 ULN2803 O TIP120 O BS170
10/12 LED DA 1WATT 350MHA
10 MR16

manca qualcosa?
Ma serve un cavo specifico per caricare il programma su arduino?
Un ULN2803 basta per 10 led, in questo contesto equivale a 10 TIP120 o BS170
__________________
Dai un pesce ad un uomo e lo avrai sfamato per un giorno, insegnagli a pescare e lo avrai sfamato per sempre. (Confucio)
I miei modelli: http://www.youtube.com/results?search_query=carloroma63
CarloRoma63 non è collegato   Rispondi citando
Vecchio 26 novembre 15, 16:04   #19 (permalink)  Top
User
 
L'avatar di CarloRoma63
 
Data registr.: 08-08-2011
Residenza: Roma
Messaggi: 5.805
Citazione:
Originalmente inviato da alexnavigator86 Visualizza messaggio
Sono cose utili magari se rispolveri la libreria può essere d'aiuto a tutti. ...

LISTA DELLA SPESA :
Se manca qualcosa ditemelo xfavore
1 arduino mini
1 7805 per alimentare arduino
10 ULN2803 O TIP120 O BS170
10/12 LED DA 1WATT 350MHA
10 MR16

manca qualcosa?
Ma serve un cavo specifico per caricare il programma su arduino?
Per l'Arduino devi accertarti che sia del modello che ha abbastanza uscite ed ingressi per il tuo scopo. Ti occorre una uscita digitale per ogni led ed una digitale per ogni canale della radio che devi gestire.

Carlo
__________________
Dai un pesce ad un uomo e lo avrai sfamato per un giorno, insegnagli a pescare e lo avrai sfamato per sempre. (Confucio)
I miei modelli: http://www.youtube.com/results?search_query=carloroma63
CarloRoma63 non è collegato   Rispondi citando
Vecchio 26 novembre 15, 17:22   #20 (permalink)  Top
User
 
L'avatar di eaman
 
Data registr.: 22-11-2013
Messaggi: 1.290
Citazione:
Originalmente inviato da CarloRoma63 Visualizza messaggio
Per l'Arduino devi accertarti che sia del modello che ha abbastanza uscite ed ingressi per il tuo scopo. Ti occorre una uscita digitale per ogni led ed una digitale per ogni canale della radio che devi gestire.

Carlo
Se posso chiarire:
- una arduino mega non penso che tu voglia metterla su un aereo, quindi comunque puoi usare solo una nano o mini (la Uno la usi per far le prove).
- Di led ne puoi pilotare una ventina l'uno indipendentemente dall'altro. Se piu' LED lavorano insieme (es estremi delle due ali, una fila di LED) saranno pilotati dallo stesso PIN.
- Se proprio vuoi pilotare indipendentemente un fottio di LEDs indipendentemente l'uno dall'altro ti conviene usare uno o piu' SHIFT REGISTER, ma intanto fattene bastare quelli che ci sono sulla scheda ;)

- 25Pcs SN74HC595N 74HC595 74HC595N HC595 DIP-16 8 Bit Shift Register IC - US$2.90
__________________
v911 - LadyBird - nQX - SuperCP - HFP80 - HCP80 - HCP100 - Devo 7e MoD - Taranis - Heli-X
Wing Wing Z-84 - Bonsai - M. Sonic - Sonic 64 EDF - S.Kinetic - Rare Bear M. - Walrus - Phoenix 2K - M. DLG - Sbach EPP - Extra 330 - Edge 540T - MX2 EPP 955 - Yak - Reaktor - SCT 1/16
eaman non è collegato   Rispondi citando
Rispondi

Bookmarks




Regole di scrittura
Non puoi creare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks è Disattivato
Pingbacks è Disattivato
Refbacks è Disattivato


Discussioni simili
Discussione Autore discussione Forum Commenti Ultimo Commento
Impianto luci navigazione redparrot62 Compro 2 17 gennaio 12 23:35
Impianto luci sigi81 Automodellismo Mot. Scoppio On-Road 6 08 agosto 09 12:49
Impianto luci pigiu Automodellismo Mot. Elettrico On-Road 10 15 ottobre 07 17:10
impianto luci navigazione robiri Circuiti Elettronici 4 26 giugno 06 11:21
impianto luci racingcampania Automodellismo 1 14 settembre 04 20:57



Tutti gli orari sono GMT +2. Adesso sono le 15:22.


Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002