Salve a tutti
Mi trovo alle prese con le letture di tutte le 85 porte dell' ATmega e come da titolo non so come leggere le pwm
se scrivo
analogWrite(Pin3, "da 0 a 254" ); ottengo in lettura digitalRead(3) valore 0
analogWrite(Pin3, 255 ); ottengo in lettura digitalRead(3) valore 1
e fino qui va bene lo prendiamo per buono
ma se voglio leggere il valore preciso o comunque aprossimativo?
In questa pagina http://arduino.cc/en/Tutorial/SecretsOfArduinoPWM leggo timer 1 e timer 2 riguardanti le porte 3-11 ma come ricavo il valore di frequenza diviso per ottenere un valore in tensione o in digitale 0-255?
Visto che si parla di timer e millis, chiedo: impostare le PWM dividendo le frequenze in uscita su quei pin, vado anche a sballare i risultati delle varie funzioni millis all'interno dello sketch?
leo72:
85 porte? L'Atmega328 non ha tutte queste porte.
si hai ragione mi sono confuso nel confondermi ho sommato le 16 analog che erano già comprese ... totale 70 porte
Arduino input command>M Map I/O pin assignments
CPU Type = ATmega2560 (Mega)
Digital pin 0 = E 0 RX Data
Digital pin 1 = E 1 TX Data
Digital pin 2 = E 4 Timer 9
Digital pin 3 = E 5 Timer 10
Digital pin 4 = G 5 Timer 2
Digital pin 5 = E 3 Timer 8
Digital pin 6 = H 3 Timer 11
Digital pin 7 = H 4 Timer 12
Digital pin 8 = H 5 Timer 13
Digital pin 9 = H 6 Timer 7
Digital pin 10 = B 4 Timer 6
Digital pin 11 = B 5 Timer 3
Digital pin 12 = B 6 Timer 4
Digital pin 13 = B 7 Timer 1 On board LED
Digital pin 14 = J 1
Digital pin 15 = J 0
Digital pin 16 = H 1
Digital pin 17 = H 0
Digital pin 18 = D 3
Digital pin 19 = D 2
Digital pin 20 = D 1
Digital pin 21 = D 0
Digital pin 22 = A 0
Digital pin 23 = A 1
Digital pin 24 = A 2
Digital pin 25 = A 3
Digital pin 26 = A 4
Digital pin 27 = A 5
Digital pin 28 = A 6
Digital pin 29 = A 7
Digital pin 30 = C 7
Digital pin 31 = C 6
Digital pin 32 = C 5
Digital pin 33 = C 4
Digital pin 34 = C 3
Digital pin 35 = C 2
Digital pin 36 = C 1
Digital pin 37 = C 0
Digital pin 38 = D 7
Digital pin 39 = G 2
Digital pin 40 = G 1
Digital pin 41 = G 0
Digital pin 42 = L 7
Digital pin 43 = L 6
Digital pin 44 = L 5 Timer 16
Digital pin 45 = L 4 Timer 15
Digital pin 46 = L 3 Timer 14
Digital pin 47 = L 2
Digital pin 48 = L 1
Digital pin 49 = L 0
Digital pin 50 = B 3
Digital pin 51 = B 2
Digital pin 52 = B 1
Digital pin 53 = B 0
Digital pin 54 = F 0 Analog Input 0
Digital pin 55 = F 1 Analog Input 1
Digital pin 56 = F 2 Analog Input 2
Digital pin 57 = F 3 Analog Input 3
Digital pin 58 = F 4 Analog Input 4
Digital pin 59 = F 5 Analog Input 5
Digital pin 60 = F 6 Analog Input 6
Digital pin 61 = F 7 Analog Input 7
Digital pin 62 = K 0 Analog Input 8
Digital pin 63 = K 1 Analog Input 9
Digital pin 64 = K 2 Analog Input 10
Digital pin 65 = K 3 Analog Input 11
Digital pin 66 = K 4 Analog Input 12
Digital pin 67 = K 5 Analog Input 13
Digital pin 68 = K 6 Analog Input 14
Digital pin 69 = K 7 Analog Input 15
Arduino input command>
[/quote]
uwefed:
Perché devi leggere il valore dalle porte; non puoi mettere il valore PWM in delle variabili e "leggere" quelli?
Si ci avevo pensato, ma è piuttosto trafficato come lavoro, in realtà in questo progetto lo sketch è una libreria e il programma vero e proprio si trova fuori sulla sd ... ovvero cio' che deve fare arduino ad un evento o come si devono comportare le porte non è scritto dentro il PDE ma su un txt... un ini un cip e ciop chiamalo come vuoi :)(questo mi permette di programmare arduino da dei moduli html anche con le formule da applicare ai segnali analog e/o pwm).
Voglio creare un programma per arduino dove non devi ne conoscere il c#, ne conoscere html ..... lo devi solo programmare da browser.
Lo sketch in pratica non lo devi neanche guardare. Questo chiaramente per impianti domotici, non certo per robotica, palloni sonda ed elicotteri spia.
Comunque fa nulla, sarebbe solo stato più pulito, meno memoria impiegata ecc, grazie, per ora mi limiterò a memorizzarli su variabili