Buongiorno a tutti,
sto facendo delle prove utilizzando un ProMini e 6 display a 7 segmenti collegati alle porte D e B.
Non riesco proprio a capire perchè i segmenti A e B (collegati a TX ed al RX) non vogliono accendersi.
I collegamenti sono esatti e collegati direttamente ai 5V funzionano.
Il programma utilizzato per le prove è:
La porta B ha solo 6 uscite utilizzabili: le altre non vanno forzate, ma bisogna fare un OR (|) per le uscite d attivare e un AND(&) per le uscite da disattivare.
La tabella display[ ] è sbagliata: la porta B sta quasi sempre tutta a 1!
Non vedo la tabella dei numeri ma, d'altra parte, stai provando solo con num=0.
Inoltre, come dice Guglielmo, quando vengono trasmessi/ricevuti dati sulla seriale vedrai lampeggiare i segmenti collegati a Tx/Rx.
I display sono a catodo comune?
Se è a catodo comune, è giusto attivarlo portando a 0 l'uscita collegata al catodo, ma devi portare a 1 le uscite collegate agli anodi, invece io leggo:
Spero che tu abbia messo una resistenza per ogni anodo (se i display sono a catodo comune) e che la corrente sia minore di 10mA/segmento, quindi almeno 330 ohm.
TX e il pin da cui vengonio trasmessi i dati seriali, RX è il pin in cui vengono ricevuti. Essi sono collegati al convertitore Seriale <-> USB che è presente sulla scheda e che ti permette dil collegamneto con il computer.
No, vero, il Pro Mini ha solo il connettore per attaccare un convertitore Seriale <-> USB esterno alla scheda che però ...
... l'utente sicuramente lo ha visto che usa la seriale e trasmette i dati al PC
x Datman grazie, il programmino funziona; devo però eliminare il ciclo "for" in quanto non voglio ripetere lo stesso numero sui vari display (immagino comunque sia possibile anche se, al momento, non so come ... ma ci penserò); vorrei invece sapere il perchè dell'utilizzo di "DDRB=0b00111111;" invece di B11111111. So che è corretta, ma perchè?
Ne approfitto, vorrei alimentare il tutto con un caricatore da 9V e 300 mA sul pin RAW, supportando questo, da letteratura, un max di 40 mA è sufficente inserire un resistore da 20 o 30 Ohm?
sembra che l'alimentazione non debba superare i 40 mA. Pur con le mie scarse conoscenze la cosa mi sembra un po' assurda, comunque ...
Da reminiscenze scolastiche ricordo questa formula
I = V/R
quindi aumentando la resistenza gli ampere dovrebbero ridursi.
Saluti
Enrico
NO, quello che è indicato li è quanto si può assorbire da un pin di Arduino. Ti rammento infatti che ogni pin di Arduino può dare al massimo, a Vcc, 40 mA (... ma quello è veramente un limite, nel normale funzionamento occorre stare al 60-70% di detto valore) ed inoltre la somma di tutti i pin e dell'assorbimento del chip, non deve superare al massimo i 200 mA (... e anche qui massimo va considerato come valore limite, ma nel normale funzionamento occorre stare al 60-70% di detto valore). Assorbimenti oltre detti limiti possono danneggiare irrimediabilmente il chip.
Quanto invece la scheda assorbe NON lo decidi tu ma la sua "resistenza" e quella degli oggetti che gli colleghi che, per la formula che hai scritto, darà una determinata corrente che NON sei tu a dove imporre, ma che è il circuito stesso che assorbe dall'alimentatore il quale, ovviamnete, deve essere in grado di fornire almeno il 35/40% in più di quanto richiesto, onde evitare di surriscaldarlo.
Quindi, ad esempio, se tra arduino e periferiche tu hai bisogno di 200 mA, dovrai usare, per non surriscaldalo, un alimentatore che è in grado di fornirne almeno un 300 mA, meglio 500mA
E' la stessa cosa. La prima forma è standard, mentre la seconda è una di quelle semplificazioni/complicazioni-che-confondono-le-idee del mondo di Arduino.
... possono specificare quello che gli pare, quello che fa testo è il datashet!
Inoltre le schede di Pighixxx notoriamente NON sono esenti da errore (alcune ne contengono di gravi che non ha fatto in tempo a correggere prima dei casini vari).
Beh... Se vai a vedere sul datasheet i grafici delle caratteristiche di uscita: Figure 31-306.ATmega328: I/O Pin Output Voltage vs. Sink Current (VCC = 5 V) Figure 31-308.ATmega328: I/O Pin Output Voltage vs. Source Current (VCC = 5 V)
le curve sono limitate proprio a 20mA.
... stiamo parlando di Absolute Maximum Rating dove viene chiaramente specificato 40mA ... è più che sicuro attestarsi su un 60/70% di tale valore senza creare alcun problema al chip.
Le curve sono fatte con un valore standard di riferimento che poco ha a che vedere con i valori limite (per non danneggiare il chip). Esse servono piuttosto ad indicare il valore di tensione da aspettarsi sul pin in funzione della corrente assorbita che, in ogni caso, è bene sia sempre sotto i 30mA (per stare tranquilli e non rischiare).
Giusto per essere ben chiari e non commettere errori ...
Absolute Maximum Rating:
DC Current per I/O Pin ................... 40.0mA
DC Current VCC and GND Pins .... 200.0mA
Stresses beyond those listed under “Absolute Maximum Ratings” may cause permanent damage to the device. This is a stress rating only and functional operation of the device at these or other conditions beyond those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum rating conditions for extended periods may affect device reliability.