Salve a tutti, ho realizzato gia in passato diversi progetti con arduino senza problemi, ma l'ultimo progetto credo che sia stato deleterio per la mia ArduinoUno R3.
Stavo realizzando un semplice robot capace di scorrazzare per casa ed evitare ostacoli. Il progetto era ad un buon punto quando è accaduto il fattaccio. Il robot prevede l'utilizzo di due servo modificati per la rotazione continua ed un terzo servo che movimenta un sensore con un angolo di 60° davanti al robot per la rilevazione degli ostacoli. Essendo il progetto in fase di test, avevo aperto anche la comunicazione seriale sul pc per avere un riscontro degli ostacoli.
Durante le prove, forse a causa dell'eccessivo assorbimento di corrente sulla porta usb del pc ho avuto alcune disconnessioni dal pc che hanno lasciato la scheda Arduino più volte senza comunicazione con il pc. In pratica ora mi ritrovo con una scheda che non carica più nessuno sketch, anche se continua a far girare correttamente quello caricato, anche se manca la comunicazione seriale con il pc. Ho fatto varie prove, l'Atmel 328 non ha problemi, montato su un'altra scheda si programma ed esegue correttamente lo sketch. Quando invece provo a caricare sulla scheda guasta qualsiasi cosa, lampeggia in modo anomalo soltanto il led Rx e l'IDE mi da dei messaggi d'errore dopo vari tentativi. Ho provato anche a ricaricare il firmware sull'Atmel 16u2, seguendo varie guide trovate in rete, utilizzando il programma Flip della Atmel. La programmazione va a buon fine ma il problema rimane, ho ricaricato sia la versione per il mercato Americano sia quella per il mercato europeo, in entrambi i casi il riconoscimento del pc, cambia in base al firmware utilizzato, selezionando porte com diverse. Qualcuno può suggerirmi altre prove da fare oppure mi devo rassegnare a caricare gli sketch utilizzando la scheda buona?
Un ecccesivo consumo sui 5V non dovrebbe rompere il ATmega16U2.
Hai attacato qualcosa sui pin 0 e 1?
Quando attacchi l' arduino al PC quello riconoce l'USB e Arduino?
Che programmatore hai usato per caricare il Firmware?
Ciao Uwe
Ciao, grazie x la tua veloce risposta.
No, non ho collegato niente ai piedini 0 ed 1, sono a conoscenza del loro uso nella comunicazione seriale tra i due Atmel.
Come detto nel post precedente, il PC riconosce la scheda con il nome relativo al firmware caricato sul Atmel 16u2, quindi credo che la comunicazione tra i due sia ok.
Durante il caricamento del firmware sul 16u2, i led rx e tx lampeggiano regolarmente e la programmazione va a buon fine, senza errori.
Il programma utilizzato per il caricamento del firmware è la penultima versione di Flip disponibile sul sito della Atmel. Per caricarlo bisogna mandare il modalità DFU il 16u2 mettendo a Gnd il punto di reset e caricare i driver presenti nella cartella del programma Flip. Insomma sembra che in problema sia dovuto alla mancata comunicazione tra i due Atmel un fase di caricamento degli sketch.
Se non ti serve la comunicazione seriale su quella "rotta" puoi utilizzare i programmatori icsp
Sinceramente pensavo di bypassare il problema, una volta accertato che sia il 16u2 guasto, di collegare sui contatti Rx/Tx della scheda un normale convertitore usb/seriale e continuare a caricare in quel modo gli sketch. Non sono sicuro che sia realizzabile al 100% ma credo che in fin dei conti il compito del 16u2 sia solo quello di una mera interfaccia. A mali estremi, programmo il 328 su una scheda sana e poi lo monto su quella guasta per eseguire i compiti assegnati.
Prima di darmi per vinto però, appena possibile, voglio vedere cosa comunica e se comunica il 16u2 con il 328.
Da schema elettrico sembra che il loro collegamento è solo tra due piedini di in/out del 16u2 e il 328. In teoria potrei caricare un firmware simile al classico "Bilnk" sul 16u2 ed andare a vedere i segnali sui terminali di rx/tx. Da notare che, sempre da schema, i led Rx e Tx, sono collegati a due diversi piedini del 16u2.
Rieccomi qua a parlare della mia Uno R3 guasta. Ho comprato un CP2102 (Usb to Uart) insieme ad un clone Arduino Pro Mini. Premetto che nel frattempo ho continuato ad utilizzare la Uno R3 guasta programmando il 328 su un'altra R3 senza problemi. Oggi ho fatto alcune prove collegando la Cp2102 alla scheda guasta senza esito. Non si riesce a caricare nessuno schetch sul 328. Ho collegato tutto come trovato su vari tutorial in internet. Riassumo i collegamenti effettuati. Scheda R3 guasta disalimentata, nel senso che non è collegata ne su Usb, ne su alimentazione esterna. Dalla CP2102 collego i 3.3 e la Gnd ai rispettivi della R3, il Tx e Rx con i rispettivi R3, il DTR della CP2102 al reset della R3 come descritto nei tutorial e niente, sulla ide, nonostante la scheda sia selezionata come Genuino Uno e la relativa com della CP2102 selezionata, ottengo sempre gli stessi errori e il mancato caricamento dello schetch. Ho provato anche a invertire Rx con il Tx e a collegare i 5v staccando i 3.3v. Dove può essere l'errore?
- Tra il DTR e il Reset di Arduino, dovresti inserire in serie un condensatore da 100nF
- la R3 devi alimentarla a 5V, non a 3.3V
- Probabilmente ci sono i pin Tx e Rx ( o anche solo uno ) del 16U2 bloccati nello stato di HIGH o LOW e se non li scolleghi fisicamente non andrà mai.
Potresti provare a mettere il pin di Reset del 16U2 ( nel connettore ICSP1) LOW, cosi' da mettere il 16U2 nello stato di reset ( Pin in Alta impedenza )
Molto probabilmente si è sprogrammato il mega16u2 , riprogrammarlo tramite isp con il firmware letto da una scheda UNO funzionante è una cosa semplice che impiega 1 minuto, lascia stare FLIP