Arduino schéma - arduino.sk

Mala spicka impulzu

Programovanie arduina
Príspevky: 5
Registrovaný: Pia 22. Aug 2014 11:30:20

Mala spicka impulzu

Poslaťod zozo58 » Pia 22. Aug 2014 11:47:41

Dobry den, potreboval by som poradit od znalych ludi, kde mozem robit chybu v programovani arduina.
Jedna sa o velmi jednoduchy script, ide iba o klasicku blikacku LED diody.
Pouzil som tento kod
Kód: Vybrať všetko
void setup()
{
}
void loop()
{
        digitalWrite(6, HIGH);
        delayMicroseconds(1);
        digitalWrite(6, LOW);
        delayMicroseconds(600);
        digitalWrite(6, HIGH);
        delayMicroseconds(1);
        digitalWrite(6, LOW);
        delayMicroseconds(600);
        delayMicroseconds(600);
}


Script funguje ale obycajna LED dioda na 1,5V sa ledva ledva rozsvieti, takmer ani nevidno ze by svietila.
Multimeter nevykazuje ani pol volta a na osciloskope som odcital 0,40mA co je strasne malo. Osciloskop som mal pozicany takze dalsie pokusy nebudem vediet robit na nom.
Niekde sa mi mari ze arduino nevie urobit pekny pulzny signal kvoli pomalemu narastaniu spicky impulzu. Pogooglil som kusok a stretol som sa s vyrazom Port Manipulation. Nie je mi celkom jasne ako konkretne to funguje, no podla toho co som pochopil bez port manipulation pusta prud do jednotlivych portov a ta spicka je mala, preto je potrebne I/O a vtedy ta spicka pulzu je pekna rovna a za milisekundu dokaze pustit aj 3V ci 5V na digitalnom porte. Preto som skusil tento script:
Kód: Vybrať všetko
void setup()
{
  DDRD = B11111111;
}
void loop()
{
        PORTD = B11110000;
        delayMicroseconds(1);
        PORTD = B00001111;
        delayMicroseconds(600);
        PORTD = B11110000;
        delayMicroseconds(1);
        PORTD = B00001111;
        delayMicroseconds(600);
        delayMicroseconds(600);
}

No vysledok je uplne rovnaky :-/ LED dioda uplne slabulinko svieti. Pritom ked dam digitalWrite(6, HIGH); tak nadherne ziari tak ako potrebujem. Vedel by toto niekto vyriesit? :-)

Obrázok užívateľa
Príspevky: 318
Registrovaný: Pon 19. Nov 2012 12:01:08
Bydlisko: HC/BA

Re: Mala spicka impulzu

Poslaťod tomXX » Pia 22. Aug 2014 20:00:35

Úplne jednoduché - použi delay a nie delayMicroseconds :) Delay sa uvádza v milisekundách (1/1000s) a delayMicroseconds je ako názov hovorí v mikrosekundách (1/1000000s).
blog.sitepoint.sk - zaujímavé riešenia okolo Arduina

Príspevky: 5
Registrovaný: Pia 22. Aug 2014 11:30:20

Re: Mala spicka impulzu

Poslaťod zozo58 » Sob 23. Aug 2014 13:09:41

Problem je v tom, ze ja realne potrebujem vytvorit presny 1 mikro sekundovy pulz, konkretne casy medzi zapnutim a vypnutim led diody su tieto

Kód: Vybrať všetko
int pulse = 1;
void setup() {
pinMode(6, OUTPUT);
}
void loop() {
        digitalWrite(6, HIGH);
        delayMicroseconds(pulse);
        digitalWrite(6, LOW);
        delayMicroseconds(4201);
        digitalWrite(6, HIGH);
        delayMicroseconds(pulse);
        digitalWrite(6, LOW);
        delayMicroseconds(12603);
        delayMicroseconds(12603);
}


A s takimito kratuckymi casmi nedokaze arduino vytvorit dost vela voltov, nenameral som ani jeden volt, tak kratky je ten cas. Pravdepodobne dochadza k niecomu takemuto

Obrázok

Ako keby v tej rychlosti medzi jednolivimi pulzmi nestihalo dohnat ku spicke maximalnej voltazi a preto oscuiloskop velmi malicku aktivitu zaznamena ale napetie sa nepriblizi ani k 1 voltu :-/. Potrebujem docielit taketo nejake pulzi

Obrázok

Skusal som aj port manipulation

Kód: Vybrať všetko
void setup()
{
  DDRD = B11111111;
}
void loop()
{
        PORTD = B11110000;
        delayMicroseconds(1);
        PORTD = B00001111;
        delayMicroseconds(600);
        PORTD = B11110000;
        delayMicroseconds(1);
        PORTD = B00001111;
        delayMicroseconds(600);
        delayMicroseconds(600);
}


Ale efekt rovnaky, led dioda mi len slabulinko tlie a ledva ledva vidno ze svieti.

Obrázok užívateľa
Príspevky: 318
Registrovaný: Pon 19. Nov 2012 12:01:08
Bydlisko: HC/BA

Re: Mala spicka impulzu

Poslaťod tomXX » Pon 25. Aug 2014 8:43:30

Tam nejde o volty, ale o to, ze asi nevies ako dlho trva mikrosekunda... ono ti to "blika", ale okom to nevidis. Daj prec LED a zapoj osciloskop (ktory nemas a ktoremu zjavne ani nerozumies - pises ze si nameral miliampere) a uvidis. A hlavne, ak chces riesit nieco s presnostou na mikrosekundy, tak sa zacni venovat assembleru a precitaj si datasheet k mikroprocesoru.
blog.sitepoint.sk - zaujímavé riešenia okolo Arduina

Príspevky: 2
Registrovaný: Pon 25. Aug 2014 13:01:13

Re: Mala spicka impulzu

Poslaťod sttaaannnnoooo » Pon 25. Aug 2014 13:04:09

Mne sa to dialo keď som zabudol nastaviť pin ako output

Príspevky: 5
Registrovaný: Pia 22. Aug 2014 11:30:20

Re: Mala spicka impulzu

Poslaťod zozo58 » Pia 13. Feb 2015 21:25:30

Zahada je vyriesena, arduino UNO je priliz pomale, po vlozeni kodu do arduina nano som dosiahol na osciloskope pekne kockate impulzy. Asi je tam ta frekvencia rozdielna. Este taka kratucka otazka pre elektrikarov :) Je potrebne dosiahnut pozadovane impulzy len problem je ze potrebujem na viac amperov aspon na diodu, ktora ma odber 10w :) nenasla by sa u niekoho nejaka schema na zvysenie vykonu povedzme s externym zdrojom? Skusal som to cez obycajny tranzistor ale normalne nestiha zosilnovat tak rychle pulzy, Skusal som tranzistori ktore by mali byt na vysoke frekvencie, aj nejake dvojite tranzistori ale stale to neni ono. Ma niekto nejake navrhy?

Príspevky: 174
Registrovaný: Ned 16. Mar 2014 23:22:00

Re: Mala spicka impulzu

Poslaťod posjirka » Pia 13. Feb 2015 22:03:51

Co ti rika saturace tranzistoru? 1 zkus se prosim vyjadrovat konkretneji nechapu pojem 10w led. To nikomu nic nerekne. Jake ma ta led parametry jako max/min napeti dovolene proudove zatizeni jak bude zapojena ... Bude sama nebo v kombinaci s necim ... Jaka bude spinaci frakvence atd. Ono zkouset obyc.led na frekvenci 1MHz je celkem pase. 2 pokud chces neco co bude pouzivat casi v x100ns musis mit alespon 8 nasobnou frekvenci krystalu a pouzit assembler. 3. Nepises jake to bude mit vysledne pouzit. Zacina mi to zavanet necim jako opticke mereni vzdalenosti ale to jsou spis frekence v radech GHz. Pisu to proto ze je dobre podiat se zda pro tuto aplikaci neexistuje svab ktery resi komunikaci vs periferie. Muze stat par korun a arduino ti pak muze slouzit jak ctecka hodnot.

Príspevky: 5
Registrovaný: Pia 22. Aug 2014 11:30:20

Re: Mala spicka impulzu

Poslaťod zozo58 » Pon 09. Mar 2015 0:21:13

Ano, dobre ti to zavana :-) Jedna sa o merac vzdialenosti o frekvencii 100ns.
Co sa diody tyka tak sa jedna o tieto parametre:

Peak Wavelength (m)=904n
P(O)rad Min.(W)Rad. Out. Power=10
@I(F) (A) (Test Condition)=40
Spectral Bandwidth (m)=7.0n
t(resp) Max.(s) Response Time=500p
I(FP) Max.(A)Forward Pulse Cur=40
@t(w) (s) (Test Condition)=200n
V(F) Max.(V) Forward Voltage=1.2
@I(F) (A) (Test Condition)=50m
V(R) Max.(V) Reverse Voltage=3.0
Semiconductor Material=GaAs
Package=Stud

Zapojena bude uplne sama. Nejedna sa o nic ine len o obycajny rychly stroboskop. Beznym okom neviditelny. Spinaciu frekvenciu mozem menit od 3 do 5V. Arduino mi uz vyraba 100ns pulzy. Teraz uz len potrebujem vyriesit to, ze ako spinat arduino pulzami tak zravu diodu.

Na citanie uz mam zariadenie ktore funguje. Takze uz len toto vyspekulovat.

Späť na Software