salve vorrei capire come impostare su due porte digitali gli stessi comandi... sul pin 6 e pin 3
questi sono quelli che ho nel pde, vorrei dare le stesse caratteristiche del pin 6 al pin 3
int ledPinBlue = 6; // pin per led blue
int ledPinWhite = 5; // pin per led bianco
posso scrivere cosi?
int ledPinBlue = 6; // pin per led blue
int ledPinWhite = 5; // pin per led bianco
int ledPinBlue2 = 3; // pin per led blue2
oppure
int ledPinBlue = 6, 3; // pin per led bleu
int ledPinWhite = 5; // pin per led bianco
Da profano di arduino (c'ho smanettato poco, per ora) posso consigliarti di scrivere una function che agisca su entrambi gli output.
L'ultima cosa che hai scritto non funziona, perché stai cercando di dire al compilatore che un numero costante è sia tre che sei, una definizione un po' fuzzy... XD
micos_1972:
salve vorrei capire come impostare su due porte digitali gli stessi comandi... sul pin 6 e pin 3
questi sono quelli che ho nel pde, vorrei dare le stesse caratteristiche del pin 6 al pin 3
int ledPinBlue = 6; // pin per led blue
int ledPinWhite = 5; // pin per led bianco
posso scrivere cosi?
int ledPinBlue = 6; // pin per led blue
int ledPinWhite = 5; // pin per led bianco
int ledPinBlue2 = 3; // pin per led blue2
si, così è ok
micos_1972:
oppure
int ledPinBlue = 6, 3; // pin per led bleu
int ledPinWhite = 5; // pin per led bianco
no, ma sì. Nel senso, è sbagliato quello che hai scritto ma la tua logica è quella di usare un array. quindi: #define NUMERO_LED_UGUALI 2
int ledStessoComando[] = {3, 6};
a questo punto, se vuoi accenenderli entrambi:
for (int i=0; i<NUMERO_LED_UGUALI; i++){
digitalWrite(HIGH, ledStessoComando*;* } spero tu abbia capito la logica, altrimenti dai un'occhiata quì: Arduino Playground - HomePage
diciamo di si
io sto cercando di modificare un progetto gia fatto
devo solo utilizzare un terzo pwm collegato tutto da un clock
logicamente
nt ledPinBlue = 6; // pin per led blue
int ledPinWhite = 5; // pin per led bianco
int ledPinBlue2 = 3; // pin per led blue2
ho fatto questo e sono andato poi in void LED_levels_output()
dove ho questo
int sector, sstep, t1, t2 ;
byte b_out, w_out;
aggiungendo
int sector, sstep, t1, t2 ;
byte b_out, w_out, b2_out;
inoltre ho aggiunto sempre in void LED_levels_output()
inoltre io ho questo
//LED Levels output
//
void LED_levels_output()
{
int sector, sstep, t1, t2 ;
byte b_out, w_out, b2_out;
if (min_cnt>=1440) {min_cnt=1;} // 24 hours of minutes
sector = min_cnt/SS; // divided by gives sector -- 15 minute
sstep = min_cnt%SS; // remainder gives add on to sector value
scommetto che mi sto incasinando la vita?
il pin 3 è libero, i led sono da 3W ma uso un alimentatore dimmerabile con uscita pwm
scusami ancora e comunque grazie per le dritte
provato senza errore di verifica
ma come uscita nulla
mi dice superiore a 9600 caratteri
comunque è scaricabile da qui
versione r14 http://code.google.com/p/dangerduino/downloads/list
logicamente io ho modificato hw presente sul manuale ed ho provato cambiando il pin 6 con il 3, notando che hw è funzionante
uhmm la libreria è un poco complicata, comunque...
prova a staccare i led e a misurare i pin a vuoto... in oltre il fatto che se scambi 3 con 6 funziona.. direi che il problema deriva da un problema di alimentazione.
Tra l'altro hai notatoi che analogWrite viene usata anche nella funzione void LCDSetupLEDTest()?? prova a modificare anche lì, altrimenti la soluzione potrebbe essere di mettere delle resistenze più grandi ai LED (che resistenze usi?)
3W a 5V per 3 led sono 1.8A, valore che sicuramente arduino NON riescie a fornire. Ora non ricordo i limiti di corrente per pin ma son molto bassi, nell'ordine delle mA per pin.
le resistenze non ci sono, perche io uso l'uscita pwm di arduino che va a finire nel pwn in dell'alimentatore
anche io ho notato analogWrite nella funzione void LCDSetupLEDTest(), ma se non erro quella unzione serve per il test dei led tramite lcd.
i pin 5 e 6 a vuoto mi danno 3,71 V, mentre sul pin 3 ho 0 V mentre dovrebbe essere 3.71V
ah, la libreria gioca con i timer, che a loro volta giocano con il PWM...
prova ad usare altri pin, sul datasheet trovio quali son gestiti dai vari timer
ok ma poi le porte pwm non rimangono le solite? o posso poi giostrare il tutto sui pin digitali liberi avendo lo stesso effetto
guardando il data le porte dovrebbero essere
db0
db1
db2
db3
dp3
dp4
dp5
dp6
giusto?
in alcuni messaggi sopra mi hai detto di vedere quali pin hanno il timer ho guardato sul data è sonorisultati i 3-2-5-6-8-9-10-11 di essi i pin con pwm sono il 3-5-6-9-10-11
nel progetto i pin liberi sono solo il 3(pwm)
ho fatto una prova invece di int = 3; ho messo 9 senza usare lcd ed ho notato che funziona....
ho rimesso 3 nulla
poi con il tester ho controllato se c'era passaggio di corrente sup pin 3 e c'è
allora, hai sbagliato a guardare infatti da quì (e quindi anche dal datasheet) risulta che: Arduino Playground - TimerPWMCheatsheet
Pins 5 and 6: controlled by Timer 0
Pins 9 and 10: controlled by timer 1
Pins 11 and 3: controlled by timer 2
questo ci dice che se modifichi il timer2, il PWM sui pin 11 e 3 NON funziona... ora osserviamo il codice, nel setup ci sono un pò di operazioni "strane", ma così commentate: // Setup timer2 -- Prescaler/256
quindi il timer2 viene modificato!! tutto torna! 8)
l'unica a questo punto è usare il PWM sul pin 9 o 10.. se sono occupati dall'LCD no problema! basta modificare la libreria LCD per usare un altro pin libero!
Che libreria usi per l'LCD?