Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino - tutorijali, pitanja, primjeri i projekti
Konkretno šta ja imam problem, čitanje pota mi je od 520 - 880, to sam mapirao na 0 - 255, od 0 - 10 sam napravio prazan hod, samo taj prelaz sa 10 na 11 mi je problem, jer mi su javlja onda na izlazu "treperenje" a ostatak poslije 11 mi nije nikakav problem, samo to na tom samom prelazu je problem.?
Reply
Imam eeprom 24C02 i trebao bih u njega upisati podatke, imam .bin fajl sa podacima, e sad kako mi je to najlakše uraditi sa Arduinom, da li je neko tako upisivao, ide preko I2C?
Reply
https://www.youtube.com/watch?v=Wwd5UCi9Huw

Ovaj upisuje sadržaj u eeprom preko arduina ali mu je sadržaj u ino fajlu za arduino. Taj sadržaj mu je dat kao niz:

byte KChipData[]={ . . .

Najlakše ti je da tvoj bin fajl pretvoriš u hex pomoću bin2hex alata koji nađeš na netu, pa onda da uz pomoć ino fajla ovog lika gore napraviš svoj arduino program (definišeš svoj niz KChipData[]=).

Druga varijanta ti je da preko nekog serijskog terminala komuniciraš sa arduinom i tako mu šalješ deo po deo bin fajla dok ga on upucava u eeprom.
Reply
Ako imaš USBAsp programator, mogao bi da probaš sa njim, us softver PROGIsp.
Ili, ako si se nekada bavio PIC mikrokontrolerima pomoću PicKIT2 programatora.
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.

塞爾維亞文
Reply
(01-28-2021, 01:19 AM)Makso Wrote: Imam eeprom 24C02 i trebao bih u njega upisati podatke, imam .bin fajl sa podacima, e sad kako mi je to najlakše uraditi sa Arduinom, da li je neko tako upisivao, ide preko I2C?

gorankg ti je dao skroz validno resenje, a evo jos jedno od resenja gde bi trebalo da moze da upise direktno bin fajl u par klika kroz "Tera term" aplikaciju.

https://learn.sparkfun.com/tutorials/rea...eproms/all
Linux is like a wigwam NO Windows NO Gates and an Apache inside
Reply
TeraTerm je odlična preporuka i ja sam ga koristio za rad sa bootloader-om.
Posebno je dobar jer možeš da napraviš svoje makroe pa tako iskomuniciraš lakše sa svojom aplikacijom na mikrokontroleru. Tebi ovo ne treba sada ali ko zna za ubuduće...
Reply
Sutra čim uhvatim vremena, pokušaću pa javljam rezultate.
Reply
Evo sad sam se malo poigrao sa tim, prvo sam probao preko TeraTerm, funkcija sa upisivanjem u eeprom prođe glatko, dok pri čitanju iz eeproma nema ništa, samo otvori novi prozor kao da je počeo čitanje i stalno je na 0%, ne znam da li može biti da sam eeprom ne valja, ali opet razmišljam ako eeprom ne valja da li bi ga I2C skener pronašao (a pronađe ga na adresi 0x50).?
Fajl koji sam pisao u eeprom, u .txt je, izgleda ovako:
Code:
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0xB0, 0xFF, 0xFF, 0x01, 0x04, 0x01, 0x00, 0x00, 0x10, 0x05,
0x78, 0x02, 0x15, 0x02, 0x16, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC3, 0xFF, 0xF0, 0x01, 0x01, 0x00,
0x00, 0x08, 0xA5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF

Na detaljima na pc za taj fajl pokazuje da je 782 bytes, a kad ga TeraTerm upisuje i kad završi izbaci da je veličina 768 bytes.?
Reply
(01-28-2021, 09:01 AM)gorankg Wrote: https://www.youtube.com/watch?v=Wwd5UCi9Huw

Ovaj upisuje sadržaj u eeprom preko arduina ali mu je sadržaj u ino fajlu za arduino. Taj sadržaj mu je dat kao niz:

byte KChipData[]={ . . .

Najlakše ti je da tvoj bin fajl pretvoriš u hex pomoću bin2hex alata koji nađeš na netu, pa onda da uz pomoć ino fajla ovog lika gore napraviš svoj arduino program (definišeš svoj niz KChipData[]=).

Druga varijanta ti je da preko nekog serijskog terminala komuniciraš sa arduinom i tako mu šalješ deo po deo bin fajla dok ga on upucava u eeprom.

Da li to ide ovako:
Code:
byte KChipData[]={0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0xB0, 0xFF, 0xFF, 0x01, 0x04, 0x01, 0x00, 0x00, 0x10, 0x05, 0x78, 0x02, 0x15, 0x02, 0x16, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC3, 0xFF, 0xF0, 0x01, 0x01, 0x00, 0x00, 0x08, 0xA5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};

ili može i ovako (u decimalnom modu):
Code:
byte KChipData[]={255, 255, 255, 255, 255, 255, 255, 001, 001, 000, itd...};
?
Reply
Okači ovde bin fajl pa ću ti napisati kako treba da izgleda niz.
Reply

.rar   gorenje64163.rar (Size: 141 bytes / Downloads: 3)

Na tom jednom eepromu što sam upisivao, njega I2C skener nađe na 0x50 adresi, dok imam još jedan mislim da je drugi proizvođač ali je broj isti, njega kad skeniram izbaci mi sve adrese od 0x50 do 0x57.?
Reply
Obicno kada I2C skener nadje vise vise adresa to znaci da je u pitanju memorija veceg kapaciteta i da postoje dodatne "banke" tj memoriske lokacije kojima se pristupa preko drugih I2C adresa, prakticno ako ti jedna memorija vraca jednu adresu a ova druga vise sigurno nisu iste memorije u pitanju.
Reply
Tvoj niz ima 128 bajtova i dobro si ga uneo. Teratermom si verovatno spuštao txt fajl pa ti zato pokazuje višak bajtova.

Izmenio sam program sa onog linka tako da ti nakon par sekundi od dovođenja napajanja upisuje niz od 128 bajtova u eeprom sa adresom koju treba da definišeš na početku. Nakon toga iščitava sadržaj 128 lokacija i proverava da li je niz upisan dobro.
Prevedi program i upucaj ga u arduino pa nakon toga poveži eeprom i dovedi napajanje.


Attached Files
.zip   eeprog.zip (Size: 614 bytes / Downloads: 4)
Reply
Pozdrav.Taman sam pomislio da ovo za arduino uno ide sve lako,bar do sada je islo i sad prba ba uradim nesto stvarno prosto,da neke dve stvari ukljucim i iskljucim istovremeno a izbacuje mi gresku i nikako da vidim zasto.Evo to sto sam pisao i oznacen red koji pocrveni.Ovako sam ga ostavio na pola pa ako ovo videm sta je ici cu dalje.

int ledpin=10;
int ledppp = 11;
int taster = 3;
int val=0;
int tim = 500; // nesto za kasnije

void setup()
{
pinMode(ledpin.OUTPUT);
pinMode(taster,INPUT_PULLUP);
pinMode(ledppp,OUTPUT);
digitalWrite(ledpin,LOW);
digitalWrite(ledppp,LOW);
}



void loop(){

while(digitalRead(taster) == LOW)

{
delay(10);
digitalWrite(ledpin,HIGH);
digitalWrite(ledppp,HIGH);
}
while(digitalRead(taster) == HIGH)

{
delay(10);
digitalWrite(ledpin,LOW); // ---------------OVDE POCRVENI ---------------------
digitalWrite(ledppp,LOW);
}
}

Ili ispise " error compiling for board arduino uno"
Reply
Code:
pinMode(ledpin.OUTPUT);

Treba:

Code:
pinMode(ledpin,OUTPUT);
Reply
jbg,do ujutru nebih video da je tacka koliko me oci zabolele od gledanja.hvala Gorane
Reply
Nauči se da koristiš razmake, npr.



Code:
pinMode(ledpin, OUTPUT);


Tako će ti biti preglednije.



'vako:



Code:
  pinMode(Glavni,      OUTPUT);
  pinMode(Vakuum,      OUTPUT);
  pinMode(RuAut,       INPUT_PULLUP);
  pinMode(KrajnjiD,    INPUT_PULLUP);
  pinMode(KrajnjiG,    INPUT_PULLUP);
  pinMode(TStart,      INPUT_PULLUP);
  pinMode(TStop,       INPUT_PULLUP);
  pinMode(Servisni,    INPUT_PULLUP);
  pinMode(Biper,       OUTPUT);
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.

塞爾維亞文
Reply
(01-31-2021, 08:48 PM)gorankg Wrote: Tvoj niz ima 128 bajtova i dobro si ga uneo. Teratermom si verovatno spuštao txt fajl pa ti zato pokazuje višak bajtova.

Izmenio sam program sa onog linka tako da ti nakon par sekundi od dovođenja napajanja upisuje niz od 128 bajtova u eeprom sa adresom koju treba da definišeš na početku. Nakon toga iščitava sadržaj 128 lokacija i proverava da li je niz upisan dobro.
Prevedi program i upucaj ga u arduino pa nakon toga poveži eeprom i dovedi napajanje.

Ne sitgoh da se javim, u nekoj sam gužvi stalno pa i ne prilazim računaru, probaću narednih dana pa javljam kako prolazi upisivanje.

Hvala svima na pomoći. Smile
Reply
Zasto ovo nece? Ako uopste moze ovako na arduinu,da pritiskom jednog tastera odredimo koji analogni ulaz citamo,isto tako da bude i sa drugim tasterom.Sve se lepo upise bez greske ali neradi na plocici

const byte taster1 = 2;
const byte taster2 = 4;

const byte ledpin1 = 7;
const byte ledpin2 = 10;

const byte analog1 = A1;
const byte analog2 = A2;
int ana1 = 0;
int ana2 = 0;


void setup() {
pinMode(taster1,INPUT);
pinMode(taster2,INPUT);

pinMode(ledpin1,OUTPUT);
pinMode(ledpin2,OUTPUT);

pinMode(analog1, INPUT);
pinMode(analog2,INPUT);

digitalWrite(ledpin1,LOW);
digitalWrite(ledpin2,LOW);
}

void loop() {

if(digitalRead(taster1) == LOW)
{

ana1 = analogRead(analog1);
if(ana1 > 500)
digitalWrite(ledpin1,HIGH);
}
else
{
analogWrite(ledpin1,LOW);
}

if(digitalRead(taster1) == LOW)
{
ana2 = analogRead(analog2);
if(ana2 > 100)
digitalWrite(ledpin2,HIGH);
}
else
{
analogWrite(ledpin2,LOW);
}
}
Reply
Kako su ti vezani tasteri ?
Probaj INPUT_PULLUP
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)