Arduino - tutorijali, pitanja, primjeri i projekti - Printable Version +- DIY Electronic projects (https://forum.yu3ma.net) +-- Forum: Mikrokontroleri (https://forum.yu3ma.net/forumdisplay.php?fid=52) +--- Forum: Razvojni sistemi i moduli (https://forum.yu3ma.net/forumdisplay.php?fid=56) +--- Thread: Arduino - tutorijali, pitanja, primjeri i projekti (/showthread.php?tid=718) |
RE: Arduino - tutorijali, pitanja, primjeri i projekti - npejcic - 07-11-2016 (07-11-2016, 02:43 PM)Khadgar2007 Wrote: Za DAC gledam čipac koji se odaziva na ime ES9023, 24bita i može ići do 192kHz uz MCLR od 49,152MHz. Osnovna šema je veoma jednostavna i treba malo okolnih komponenti da radi i kineske varijante dođu do 10$. Ono što mi je zanimljivo je da se i sam čipac može naći za 2$ što bi omogućilo da se napravi kvalitetnija verzija nego od kineza za pristupačnu cijenu jer bolje varijante tog DACa dođu do 50$ što mi se ne uklapa u računicu. Prateći forume, ljudi imaju reči hvale za taj DAC. Lepo svira (u klasi PCM5102), jedino vodi računa da moraš imati obavezno externi kristal a upravo frekvencija koju si naveo je neophodna kako bi koristio I2S konekciju sa samo tri signala ako ti je ovo uopšte potrebno. Moja preporuka je ipak kompletan interfejs MCLK, BCLK, LRCK, DATA Kao što sam već pomenuo takav interfejs, isprobano, postoji kod A20 procesora, recimo ovaj CPU modul: https://www.olimex.com/Products/SOM/A20/ Ovde imaš detaljnu analizu u vezi Beagle Bone Black-a i audio DAC-ova: https://hifiduino.wordpress.com/2014/03/10/beaglebone-black-for-audio/ RE: Arduino - tutorijali, pitanja, primjeri i projekti - Khadgar2007 - 07-30-2016 Evo da se malo javim ovdje. Kako sam već rekao kupio sam dva komada Arduino NANO čipa sa ebaya od kineza naravno http://www.ebay.com/itm/181846906547?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT ,kodni iznos cijene-skoro džabe. E sada ali naravno da nije prošlo bez problema. Čipac koji stoji između USB porta i Atmelovog uC nije original već neka zamjena da se ne moraju plaćati autorsa prava. Uglavnom nakon što sam instalirao Arduino sučelje nigdje nisam mogao naći svog Nanoa, piše samo COM1 i to je to. Nakon malo googlanja i traženja okolo našao sam da driver koji dolazi sa original arduino programom ne paše zbog već navedenog razloga. Tako da se mora naći driver koji odgovara CH430G/431G čipu. Našao sam ga na ovoj stranici http://kig.re/2014/12/31/how-to-use-arduino-nano-mini-pro-with-CH340G-on-mac-osx-yosemite.html i sve šljaka ko po loju. Upikne se Nano u USB, nađe ga se u device manageru,instalira novi driver i to je to, sve samo za 2$ umjesto tko zna koliko bi platio original. Upravo dok ovo pišem LEDica na mom Nanou veselo blinka u intervalima od 500ms off, 5000ms on. Drugim riječima napravio sam prvu izmjenu u nekom od programčića koji dođu uz Arduino program. EDIT: Dodao sam i drivere ako bi netko imao iste probleme kao i ja. CH341SER.rar (Size: 133,11 KB / Downloads: 5) RE: Arduino - tutorijali, pitanja, primjeri i projekti - Makso - 07-30-2016 To sam i ja morao uraditi, još moram sad i na laptopu prebaciti drajvere. RE: Arduino - tutorijali, pitanja, primjeri i projekti - Makso - 10-05-2016 Da li mi neko može pomoći kako da prepravim ovaj kod, trebalo bi da počne sam brojati čim se Arduino upali ili na uslov tastera, kada se taster pritisne (momentary) počinje brojanje a drugi put pauza? Da ne moram unositi broj u serialu, nego samo da krene da broji od 0. Code: int aPin = 2; // A RE: Arduino - tutorijali, pitanja, primjeri i projekti - me[R]a - 10-06-2016 (10-05-2016, 01:36 PM)Makso Wrote: Da li mi neko može pomoći kako da prepravim ovaj kod, trebalo bi da počne sam brojati čim se Arduino upali ili na uslov tastera, kada se taster pritisne (momentary) počinje brojanje a drugi put pauza? na Vrhu programa Code: int keyStart = "[pin na koji kacis taster]"; //deklarises i inicijalizujes globalnu promenljivu za taster u void setup() Code: pinMode(keyStart, INPUT); // ovo stavis u void setup() u void loop()... ovde sam nkucao samo deo programa koji se menja... Code: if (digitalRead(keyStart) == LOW) { // Svaki put kad se pritisne taster menja se status START ili PAUSA Testiraj pa javi. Pisem onako iz glave bez provere sinaksni gresaka... RE: Arduino - tutorijali, pitanja, primjeri i projekti - Makso - 10-06-2016 Kod radi, sve je uredu što se tiče uslova tastera, samo ima problem što se ledice ne gase skroz nego samo smanji za nijansu i tako mjenjaju brojeve samo za nijansu smanji svjetlost kada je ugašena? Samo se G segment gasi do kraja? RE: Arduino - tutorijali, pitanja, primjeri i projekti - me[R]a - 10-06-2016 Nisam analiziro ceo program ali tako se u praksi ne radi multiplex ovo je primer da bi se shvatilo kako radi 7seg display. Probaj u Void clearLEDs() da na kraju stavis malo delay-a cisto da se primeti kad su segmenti pogaseni... RE: Arduino - tutorijali, pitanja, primjeri i projekti - Makso - 10-07-2016 Malo mi je čudno a i buni me, zato što na ovom osnovnom kodu gasi normalno, probao sam sa delay-om ali ništa ne mjenja.? RE: Arduino - tutorijali, pitanja, primjeri i projekti - me[R]a - 10-07-2016 Ovo : Code: if (digitalRead(keyStart) == LOW) { // Svaki put kad se pritisne taster menja se status START ili PAUSA Probaj ovako : Code: int taster = digitalRead(keyStart); Ako nece ni tako onda treba odraditi i Debounce tastera... RE: Arduino - tutorijali, pitanja, primjeri i projekti - Makso - 10-07-2016 Ista stvar, moram probati sa Debounce pa vidjeti šta će se dešavati, ali nastavljam sutra/danas, sad je već kasno... RE: Arduino - tutorijali, pitanja, primjeri i projekti - me[R]a - 10-07-2016 Stavi na kraju void loop() jedan delay(100); Jer u tvom prvom primeru ispisivanje cifara je cekalo sa Serial-a da uneses neki broj koji se prikazuje. Sad se broj uvecava programski i loop() se izvrsava previse brzo da bi nase oko moglo da vidi te brze promene po ciframa... RE: Arduino - tutorijali, pitanja, primjeri i projekti - Makso - 10-07-2016 Probao sam sa dodavanjem delay-a u loop-u, probao sam u svakom dijelu loop-a i samo dobijem 0 i blinka a ne počinje brojati.? Pokušavao sam sa debounce-om, kad sve upišem, onda idu brojevi samo kada je taster pritisnut, možda nisam dobro sve ispoštovao? RE: Arduino - tutorijali, pitanja, primjeri i projekti - gorankg - 10-08-2016 Stavi negde poslednju verziju softvera koju si probao. RE: Arduino - tutorijali, pitanja, primjeri i projekti - me[R]a - 10-08-2016 Da u pravu je gorankg postavi ceo kod da vidimo gde 'zapinje' to je prost primer i ne bi trebalo da ne radi. U onom tvom prvom primeru nigde ne vidim da pozivas void clearLEDs() tokom izvrsavanja programa.. RE: Arduino - tutorijali, pitanja, primjeri i projekti - Makso - 10-08-2016 Evo ova verzija sa poslednjim dodacima koje je @YuMERA napisao, bez debounce-a: Code: int keyStart = 13; //deklarises i inicijalizujes globalnu promenljivu za taster Ne vidim ni ja da se poziva void clearLEDs(), ali je radilo najnormalnije, možda zato što je pisao broj iz seriala.? RE: Arduino - tutorijali, pitanja, primjeri i projekti - gorankg - 10-08-2016 Funkcija void pickNumber(int x) nije dobra. Treba da izgleda ovako: void pickNumber(int x){ switch(x){ case 0: zero(); break; case 1: one(); break; case 2: two(); break; case 3: three(); break; case 4: four(); break; case 5: five(); break; case 6: six(); break; case 7: seven(); break; case 8: eight(); break; case 9: nine(); break; default: break; } } RE: Arduino - tutorijali, pitanja, primjeri i projekti - gorankg - 10-08-2016 Funckiju void clearLEDs(void) treba da pozoveš ispred ovog dela: digitalWrite( GND4, LOW); //digit 4 pickNumber(dig4); delay(DTime); digitalWrite( GND4, HIGH); digitalWrite( GND3, LOW); //digit 3 pickNumber(dig3); delay(DTime); digitalWrite( GND3, HIGH); digitalWrite( GND2, LOW); //digit 2 pickNumber(dig2); delay(DTime); digitalWrite( GND2, HIGH); digitalWrite( GND1, LOW); //digit 1 pickNumber(dig1); delay(DTime); digitalWrite( GND1, HIGH); RE: Arduino - tutorijali, pitanja, primjeri i projekti - Makso - 10-08-2016 Ubacio sam dio sa void pickNumber(int x), nije se ništa promjenilo. Onda sam ubacio void clearLEDs(void), na sve načine sam pokušao, ovako kao što sam napisao, pa sam dodavao i vitičaste zagrade da obuhvatim sve digitalWrite-e, i svaki put ista stvar a ništa se ne mjenja? Postaje mi baš čudno šta se dešava, jer od kako smo ubacili uslov za taster od tada se to dešava, nije mi jasno šta je problem, a vjerujem da je neka obična glupst koja je uvijek prisutna.? RE: Arduino - tutorijali, pitanja, primjeri i projekti - gorankg - 10-08-2016 Tvoja promenljiva num se uvećava za jedan na pritisak tastera ali joj malo niže menjaš vrednosti izrazima: num = num - (dig1 * 1000); num = num - (dig2 * 100); Što ne bi smeo raditi. dodaj jednu pomoćnu promenljivu koja će ti služiti za izračunavanje dig1...dig4. deklariši je ovako: int tmp = 0; Sada loop treba da izgleda ovako: void loop() { digitalWrite( GND1, HIGH); digitalWrite( GND2, HIGH); digitalWrite( GND3, HIGH); digitalWrite( GND4, HIGH); int taster = digitalRead(keyStart); if(taster == 0 ) // Svaki put kad se pritisne taster menja se status START ili PAUSA { toggleKey = !toggleKey; { if(toggleKey) //u zavisnosti ako je true(START) onda broj se uvecava i prikazuje novi { if(++num > 9999) //ako je false(PAUSE) onda se broj ne uvecava i prikazuje se stalno zadnji { num = 0; } Serial.println(num); //broj tj pauzirano je brojanje... } } dig1 = num / 1000; tmp = num - (dig1 * 1000); dig2 = tmp / 100; tmp = tmp - (dig2 * 100); dig3 = tmp / 10; dig4 = tmp - (dig3 *10); } digitalWrite( GND4, LOW); //digit 4 pickNumber(dig4); delay(DTime); digitalWrite( GND4, HIGH); digitalWrite( GND3, LOW); //digit 3 pickNumber(dig3); delay(DTime); digitalWrite( GND3, HIGH); digitalWrite( GND2, LOW); //digit 2 pickNumber(dig2); delay(DTime); digitalWrite( GND2, HIGH); digitalWrite( GND1, LOW); //digit 1 pickNumber(dig1); delay(DTime); digitalWrite( GND1, HIGH); } RE: Arduino - tutorijali, pitanja, primjeri i projekti - Makso - 10-08-2016 Stalno ista stvar, broji, ali ne gasi potrebne ledice kako treba. Definitivno odustajem i od ovog koda, nije vrijedno da vas opterećujem. Još mi je preostalo da kupim Arduino Mega, i da sa njim probam da svaki segment odradim posebno bez multipleksinga, značo jedan broj 8 izlaza + drugi broj 8 izlaza . . . i tako do nekih 4 ili 5 brojeva, možda bi bilo lakše napisati, šta mislite o tome? Naravno, hvala Vam puno što se uporno trudite da mi pomognete. |