Go Down

Topic: attiny85 (Read 4990 times) previous topic - next topic

Michele Menniti

I numeri dei pin non credo corrispondano ai pin fisici, in genere sono indicati con PB0, PB1, ecc e possono anche essere messi in modo apparentemente disordinato, quindi se scrivi "1" non ti riferisci al pin fisico 1 del tiny84 ma al suo pin digitale PB1 che magari corrisponde al pin fisico 7. Come ingresso puoi usare quello che vuoi anche se non ho capito perché hai scritto AREF accanto a input 0; nello specifico significa che stai leggendo un segnale analogico....
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Madwriter

"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

armando1966

#17
Feb 15, 2013, 11:01 am Last Edit: Feb 15, 2013, 05:07 pm by leo72 Reason: 1
mi pare di aver capito

faccio un esempio ..
Code: [Select]
// ATTINY 84

#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd([b]5, 4, 3, 6, 7, 8);    // iniliziazzazione lcd ( capita dal sottoscritto)[/b]

[b]// dichiarazione eventuale [b]ingresso es. PIN 1   [/b]Qualora si voglia usare come termometro o altro e relative formule[/b]

void setup() {
 // set up the LCD's number of columns and rows:
 lcd.begin(16, 2);
 // Print a message to the LCD.
 lcd.print("ciao ");
}

void loop() {
 // set the cursor to column 0, line 1
 // (note: line 1 is the second row, since counting begins with 0):
 lcd.setCursor(0, 1);
 // print the number of seconds since reset:
 lcd.print(millis()/1000);
}


ti ringrazio per l'aiuto

armando

Michele Menniti

#18
Feb 15, 2013, 11:10 am Last Edit: Feb 15, 2013, 05:08 pm by leo72 Reason: 1
chiudi la parentesi all'inizializzazione dell'LCD. ;) (veniva fuori lo smile perché non aveva usato il tag code  ;) - NdLeo)
Allora se guardi il link che ti ha fornito MAD, la numerazione dei pin dovrebbe essere quella colorata in marrone (p.es. il pin fisico 5 del micro corrisponde al pin digitale 8, mentre il pin fisico 10 corrisponde, secondo come lo usi, al pin digitale 3 o al pin analogico A3); su quella base, collega i sei fili dove vuoi e poi dichiara i valori corrispondenti colorati in marrone.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

armando1966

ok . adesso ho capito .
ti ringrazio ti faro sapere l'esito delle prove/collegamenti

ciao

armando 


armando1966

problema ,
ecco il messaggio che e' uscito

portando arduino come ISP upload del programma lo fa senza errori
cambiando da mega adk etc.. ad ATTiny84  e  Carica con un programmatore >>>
da questo messaggio .

l'unico particolare che ho notato e' che il ATTINY84 sul IDE invece   e sul circuito integrato e' ATTINY84A


C:\Documents and Settings\marco\Desktop\arduino-1.0.3\libraries\LiquidCrystal/LiquidCrystal.h:82: error: conflicting return type specified for 'virtual size_t LiquidCrystal::write(uint8_t)'
C:\Documents and Settings\marco\Desktop\arduino-1.0.3\hardware\tiny\cores\tiny/Print.h:71: error:   overriding 'virtual void Print::write(uint8_t)'

Michele Menniti

non so dirti, a me sembra una incompatibilità tra la libreria e l'IDE, forse è una vecchia versione, vediamo se passa Leo o un altro softwarista....
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

leo72

Michele dice bene, pare un problema software: con l'IDE 1.0 è stata riscritta la parte di codice che gestiva gli eventi print. Adesso sono tutti metodi della superclasse Serial.

armando, finora non mi pare tu lo abbia scritto ma che core stai usando per gestire i tuoi Attiny?
Io uso il core Tiny 0100-0015, e con l'IDE 1.0.3 ho compilato senza problemi gli esempi della LiquidCrystal allegati alla lib.

armando1966

un attimo che mi aggiorno

armando1966

l' ide e' 1.03

il core lho scaricato per aggiungere i vari  attiny84 85 atmega328 etc  , onestamente non ho fatto caso sulla versione
_______

faccio un passo indietro ,
con gli amici del post che ho aperto mi hanno portato per gradi alla programmazione del attiny85
lampeggio led ho cambiato anche la porta (pin fisico ) ricompilando  il tutto e caricando con risultati ottimi .

___________________
ora sono passato al attiny84 ma sta dando queshgli errori in copilazione e uploading
poco fa prima che mi scrivesse Leo ho cercato di aggiornare il ( penso ) core degli attiny etc... ma adesso non sta andando nenache da arduino a lcd sta dando errori in compilazione . quindi deduco che ho fatto male a caricare questo core ... cmq sto scaricando nuovamente arduino 1.0.3 , cmq mi serve un link sicuro per aggiornare la pagina dei TIPI DI ARDUINO ( penso si abbia commesso l'ulteriore errore )
vi ringrazio per la pazienza
a.

leo72


il core lho scaricato per aggiungere i vari  attiny84 85 atmega328 etc  , onestamente non ho fatto caso sulla versione

La domanda è: quale core?
Siccome ce ne sono almeno 2 in circolazione (3 considerando un core beta), potresti mettere il link di quello che stai usando?
Io ti consiglio il core Tiny:
http://code.google.com/p/arduino-tiny/

Quote

ora sono passato al attiny84 ma sta dando queshgli errori in copilazione e uploading
poco fa prima che mi scrivesse Leo ho cercato di aggiornare il ( penso ) core degli attiny etc... ma adesso non sta andando nenache da arduino a lcd sta dando errori in compilazione . quindi deduco che ho fatto male a caricare questo core ... cmq sto scaricando nuovamente arduino 1.0.3 , cmq mi serve un link sicuro per aggiornare la pagina dei TIPI DI ARDUINO ( penso si abbia commesso l'ulteriore errore )
vi ringrazio per la pazienza
a.

Alcune cose:
1) non devi riscaricarti l'IDE, basta cancellare la cartella del core che ti sta dando problemi.
2) i core aggiuntivi vanno messi in /arduino-xxx/hardware/ oppure in /cartella_degli_sketch/hardware. Se li metti da qualche altra parte, fai solo danni  ;)
3) non capisco "la pagina dei tipi di arduino". Ti riferisci forse all'elenco che appare in Strumenti/Tipo di Arduino dell'IDE? Quell'elenco viene aggiornato in automatico dall'IDE in base alle schede che trova nei vari file boards.txt dei core che installi.


armando1966

allora ,
la musica e cambiata ,
prima l'ide di arduino e stato solo copiato senza installazioni di installer di windows
adesso ho trovato la 1.0.3 con tanto di setup e l'ho installata
ho aggiunto tutti i modelli , dopodiche ho caricato la tiny0100 0015
dopodiche ho copiato  la cartella tiny in \hardware\tiny ( sovrapposta) la tools 'lho lasciata

riepilogando errori caricando ISP  non ne da
caricando il solo file del voltemetro tanto per fare una prova e cambiando i pin
del liquidcristal  da solo questo errore ma ancora non funge ..

Hint: You can set the maximum SRAM memory of your board directly in the boards.txt file
avrdude.exe: stk500_getsync(): not in sync: resp=0x00


pero' ci stiamo avvicinando al risultato
__________________________________________________________________

#include <LiquidCrystal.h>

LiquidCrystal lcd(7, 6, 5,4,3,2);  // questi sono riferiti ai pin del TINY84

//#define ANA_IN_0 0
int potPin = 0;

float misura_di_tensione  ;
float misura_corrente   ;
float volt ;
float ampere ;
int R = 100 ;
float watt ;

void setup() {
lcd.begin(16, 2); 
Serial.begin(9600);
//volt=(misura_di_tensione*5/1023);
}

void loop() {

misura_di_tensione = analogRead(potPin);
//lcd.println(misura_di_tensione);
//lcd.println(misura_corrente);
//lcd.clear();

lcd.setCursor(0, 0);
volt= (misura_di_tensione*5/1023);
lcd.print(volt);
// I = V/R   Calcolo corrente
lcd.print("  V");
lcd.setCursor(0,1);
ampere= (volt/R );
lcd.print(ampere, 3);  // visulaizza i numeri in virgola mobile 3 cifre dopo la virgola
lcd.print(" A");
lcd.setCursor (9 , 0);
watt= float (volt * ampere);
lcd.print(watt, 3);
lcd.print(" W");

delay(100);
}

PaoloP


ho trovato la 1.0.3 con tanto di setup e l'ho installata


Puoi indicare dove hai scaricato la versione con il setup?  :smiley-roll-blue:

armando1966

http://arduino.cc/forum/index.php/topic,118440.msg891474.html#msg891474

cmq la prima versione che ho copiato
e la seconda installata   
tra di loro non so ma ce' qualcosa che non va .

quella installata sembra che non da errori  ma lavorando sul tiny85 non combina nulla cambiando il pin del led
tutto tace ,

avviene correttamente con il programma copiato solo per il tiny85 cambiando il led di posto ricompili e vai tutto regolare .

sto facendo confusione con qualche cosa . adesso il programma copiato di arduino lo cancello tutto e lascio solo quello installato ( setup)

una domanda ... la sola cartella TINY va copiata in \hardware  o va copiato tutto il contenuto del file zippato comprensivo di TOOLS ?


armando1966

adesso non va neanche arduino con il famoso " hello word sul lcd "

per un attimo spunta la scritta dopo 2 secondi arrivano caratteri ascii

c'e' qualcosa per resettare arduino a livello software ?


Go Up