www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Kaj trenutno počnem December 2021
Pojdi na stran Prejšnja  1, 2
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Brusli
Član
Član



Pridružen-a: Tor 24 Nov 2020 12:10
Prispevkov: 139
Aktiv.: 3.42
Kraj: Hrastnik

PrispevekObjavljeno: Sre Dec 22, 2021 8:20 pm    Naslov sporočila:   Odgovori s citatom

Silvo, tole pa lepo zgleda. Kako pa shranjuješ tiste vzorce oz. kombinacije utripanja? Če prav vidim, imaš programe spisane kar v zaporedju vrednosti od 0 do 255 za vsako lediko posebej in vmes kratka pavza (fiksna hitrost)?

Jaz sem si pred leti sprogramiral nekaj podobnega, vendar sem namesto RGB ledik uporabil 4 izhode za 4 različne barve ledik (verga). Kombinacije utripanja sem pa spisal kot funkcije v C-ju, vendar pa mi je na koncu na ATmega328P zmanjkalo flash prostora zaradi prevelikega števila kombinacij. Ravnokar pa sem dobil nekaj novejših čipov AVR128DB32 s 128kB flasha, ki bo poganjal novo ploščo z 8 PWM izhodi. Dancing

lp
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
lojzek
Član
Član



Pridružen-a: Pet 25 Jan 2008 8:00
Prispevkov: 3352
Aktiv.: 17.02

PrispevekObjavljeno: Sre Dec 22, 2021 9:25 pm    Naslov sporočila:   Odgovori s citatom

brusli

Citiram:
na ATmega328P zmanjkalo flash prostora zaradi prevelikega števila kombinacij.


Včasih je v 38kb prostora prišla cela igrica (komodor64) in to kar fletna. V spektruma še manjši špomin.
Če ti je v 32kB + EEPROM zmanjkalo spomina - Oče, oprosti,grešim.

Uporabi stvar, kot se spodobi. Arduino meni vozi kolektor z 8 senzorji 2 leti, atmega16 s 5 senzorji kurilnico že xy let, pa je oboje še vsaj 3/4 prazno. Pa sem daleč od tega, da bi kaj optimiral kodo.

Nič ne mislim slabega, ampak Tiny13 je za lučke že uveeeeerkill. Kolikor ima prostih tačk, toliko izhodov (6) Če pa kako tipko uporabiš, 5 izhodov. Če reset pustiš pri miru, pa še enega manj.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14551
Aktiv.: 65.53
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Sre Dec 22, 2021 10:06 pm    Naslov sporočila:   Odgovori s citatom

Brusli je napisal/a:
Silvo, tole pa lepo zgleda. Kako pa shranjuješ tiste vzorce oz. kombinacije utripanja? Če prav vidim, imaš programe spisane kar v zaporedju vrednosti od 0 do 255 za vsako lediko posebej in vmes kratka pavza (fiksna hitrost)?

lp


Pišem v assemblerju zato je pomnilnika še vedno dovolj-mi pa zmanjkuje idej. Za enkrat je spisanih 32 programov. Porabljenga 40% pomnilnika Mege328 V povprečju vsakega ženem ca 30 sec, tako da je treba čakati okrog 15 minut, da se obrne. Malo sem štel instrukcije, da sem spisal glavno proceduro za pošiljanje na diode. Procesor je pognan z internim oscilatorjem 8Mhz. Je šlo kar na tesno, ker so timingi v nS (1.25µs±600ns en bit ) Za eno diodo je potrebno poslati 24bitov (3byte) Na procesorju je porabljen le en pin Laughing Pred pošiljanjem željeno pripravim v ram potem preko X-registra potisnem na pin. Spisal sem razne procedure, ki pred pošiljanjem "mešajo" ta ram in s tem tvorijo kombinacije. Spisal sem si tudi PC-programček za pripravo tega rama. Programček mi zgenerira kodo v obliki tabele, katero potem potisnem v ram.

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
TRAFO
Član
Član



Pridružen-a: Sre 07 Dec 2011 22:58
Prispevkov: 61
Aktiv.: 0.41
Kraj: TOLMIN

PrispevekObjavljeno: Sre Dec 22, 2021 11:47 pm    Naslov sporočila:  Re: Kaj trenutno počnem December 2021 Odgovori s citatom

SimonS je napisal/a:
Bom pa jaz prvi Smile
Delam tehnico za čebelje panje. Baterijsko napajanje in logiranje teže na serverju
Trenutno mi živce žre lastna poraba 1117, ki je kar 7mA. To moram nujno znižati na <100uA


NCP730 pride tudi pod 1uA. Sprobano.
https://eu.mouser.com/c/?q=NCP730
Samo se kar čaka na dobavo.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Traflc
Član
Član



Pridružen-a: Sob 06 Dec 2003 21:48
Prispevkov: 365
Aktiv.: 1.64
Kraj: Javornik Jesenice

PrispevekObjavljeno: Pon Dec 27, 2021 10:16 pm    Naslov sporočila:   Odgovori s citatom

Jaz pa se ubijam s temle programčkom. Poskušam narediti rc ESC za krtačne motorčke. Uporabljam zaenkrat digispark, kasneje pa bi preselil na attiny85.
No s tem programom mi desna polovica ročice deluje kot je treba.
Leva stran pa se ne odziva. H most preverjeno dela tako da ni problem v železju pač pa v programu. Ne vem kje ga biksam 🤔

Koda:
int input=0;
int output1=1;
int output2=2;
#define MIDDLE_POINT 1550

void setup() {

  pinMode(output1, OUTPUT);
  pinMode(output2, OUTPUT);
  pinMode(input, INPUT);
 
}

void loop() {
    int val=pulseIn(input,HIGH);
    int pwm=map(val,1000,2200,-500,500);
    pwm=constrain(pwm,0,255);

    if (val < MIDDLE_POINT) {
   
    digitalWrite(output1, LOW);
    analogWrite(output2, pwm);
     
   }
   
     else if (val > MIDDLE_POINT) {
     
    digitalWrite(output2, LOW);
    analogWrite(output1, pwm);
   
    }
   
  delay(5);

 }

_________________
Lp. Traflc
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
lojzek
Član
Član



Pridružen-a: Pet 25 Jan 2008 8:00
Prispevkov: 3352
Aktiv.: 17.02

PrispevekObjavljeno: Tor Dec 28, 2021 2:45 pm    Naslov sporočila:   Odgovori s citatom

Kolikor zastopim tvoj program.... "val" je spremenljivka, ki jo spreminjaš z ročicami. In jo primerjaš z neko določeno vrednostjo....

Jaz bi najprej poizkusil (če imaš možnost) preveriti vrednost "val", jo izpisati na nekaj,...

PS, velikokrat me je zaklala osnovna stvar... Ali imaš stvari priključene na prave pine- uporabljene v programu in če so ti pravilno skonfigurirani.

Pa še to - jaz bi poizkusil poskusil z izbrisom "else"... v drugem pogoju.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
ecobra
Član
Član



Pridružen-a: Pet 27 Jun 2014 14:16
Prispevkov: 310
Aktiv.: 2.61
Kraj: Radeče

PrispevekObjavljeno: Tor Dec 28, 2021 3:47 pm    Naslov sporočila:   Odgovori s citatom

Traflc je napisal/a:
J

int pwm=map(val,1000,2200,-500,500);
pwm=constrain(pwm,0,255);



Kot razumem tale programček ti zaradi "constrain" ukaza dela samo v območju od 0-255 in ne od -500 do 500 kot si ti želiš.
Če prav mislim, ti že pri četrtini pomika ročice v desno pwm doseže polno vrednost na izhodu.
l.p.

lahko se pa motim

_________________
Luna sije, pa ne greje.
Piška pije, pa ne šči...
Uzdaj se use i svoje kljuse.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Traflc
Član
Član



Pridružen-a: Sob 06 Dec 2003 21:48
Prispevkov: 365
Aktiv.: 1.64
Kraj: Javornik Jesenice

PrispevekObjavljeno: Tor Dec 28, 2021 5:35 pm    Naslov sporočila:   Odgovori s citatom

Evo sedaj pa bo. Digispark mi nikakor noče delat pravilno razen s pinoma 1 in 4 kot izhod.

Program sem malenkost popravil in sedaj deluje.

Koda:
int output1=1;
int output2=4;
#define MIDDLE_POINT 1550

void setup() {

  pinMode(output1, OUTPUT);
  pinMode(output2, OUTPUT);
  pinMode(input, INPUT);
 
}

void loop() {
    int val=pulseIn(input,HIGH);
    int pwm=map(val,1000,2200,-500,500);
   
    pwm=constrain(pwm,-255,255);

    if (val < MIDDLE_POINT) {
   pwm=(-pwm);
    digitalWrite(output1, LOW);
    analogWrite(output2, pwm);
     
   }
   
      if (val > MIDDLE_POINT) {
     
    digitalWrite(output2, LOW);
    analogWrite(output1, pwm);
   
    }
   
  delay(5);

_________________
Lp. Traflc
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Traflc
Član
Član



Pridružen-a: Sob 06 Dec 2003 21:48
Prispevkov: 365
Aktiv.: 1.64
Kraj: Javornik Jesenice

PrispevekObjavljeno: Tor Dec 28, 2021 5:38 pm    Naslov sporočila:   Odgovori s citatom

Ja in potem sem šel preverjat kateri pini so PWM Shocked
Seveda 1 in 4 hehe. No samo da mi je uspelo.
Hvala za predloge in pomoč Mr. Green

_________________
Lp. Traflc
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
ecobra
Član
Član



Pridružen-a: Pet 27 Jun 2014 14:16
Prispevkov: 310
Aktiv.: 2.61
Kraj: Radeče

PrispevekObjavljeno: Tor Dec 28, 2021 6:31 pm    Naslov sporočila:   Odgovori s citatom

Traflc je napisal/a:


}

void loop() {
int val=pulseIn(input,HIGH);
int pwm=map(val,1000,2200,-500,500);

pwm=constrain(pwm,-255,255);


Ne vem zakaj mapiraš na -500, 500 in potem omejuješ na 255.
Zakaj ne kar v enem koraku:

int pwm=map(val,1000,2200,-255,255);

in naslednji korak:
pwm= abs(pwm)

mogoče se motim

_________________
Luna sije, pa ne greje.
Piška pije, pa ne šči...
Uzdaj se use i svoje kljuse.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Traflc
Član
Član



Pridružen-a: Sob 06 Dec 2003 21:48
Prispevkov: 365
Aktiv.: 1.64
Kraj: Javornik Jesenice

PrispevekObjavljeno: Tor Dec 28, 2021 7:18 pm    Naslov sporočila:   Odgovori s citatom

Sem se malo igral s številkami map.. Ampak če sem dal - 255,255 mi ni na izhodu dal polne moči kar mi je bilo čudno zato sem dvignil številke.
Se bom ob priliki še malo poigral s tvojim predlogom @ecobra
Zaenkrat zadeva "špila" 😁
Sicer sem na youtube našel en podoben esc ampak mi njegovo delovanje ni bilo všeč. V mirovanju je namreč na izhodu dajal ene špice in posledično vklapljal motor. Najbrž zato ker je uporabljal interrupt.
Zato sem se potem odločil za svoj esc.

_________________
Lp. Traflc
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
ecobra
Član
Član



Pridružen-a: Pet 27 Jun 2014 14:16
Prispevkov: 310
Aktiv.: 2.61
Kraj: Radeče

PrispevekObjavljeno: Tor Dec 28, 2021 7:38 pm    Naslov sporočila:   Odgovori s citatom

Traflc je napisal/a:

Sicer sem na youtube našel en podoben esc ampak mi njegovo delovanje ni bilo všeč. V mirovanju je namreč na izhodu dajal ene špice in posledično vklapljal motor. Najbrž zato ker je uporabljal interrupt.
Zato sem se potem odločil za svoj esc.


Tudi pri tebi se lahko pojavijo špice v mirovanju, to pa zato ker nimaš definirane mrtve cone okoli vrednosti 1550.
Ta vrednost je zelo ozka in v primeru nihanja časa impulza se bo ta vrednost gibala več ali manj okoli 1550 in takrat bo nemiren motor.
V if stavku bi spremenil if (val >= 1499 ); ali poljubno manj,
in naslednji if (val <= 1551 ); ali poljubno več.
Približno tako razmišljam.
l.p.

_________________
Luna sije, pa ne greje.
Piška pije, pa ne šči...
Uzdaj se use i svoje kljuse.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Traflc
Član
Član



Pridružen-a: Sob 06 Dec 2003 21:48
Prispevkov: 365
Aktiv.: 1.64
Kraj: Javornik Jesenice

PrispevekObjavljeno: Tor Dec 28, 2021 9:38 pm    Naslov sporočila:   Odgovori s citatom

Hvala za nasvet
No tam pri tistem programu s tube je bil "deadzone" pa je kljub temu prihajalo do špic.
Z mojim programom teh težav ne opažam.
Kljub temu pa bom še dodal:
#define deadzone = 60
In potem v if stavkih if (val <=(MIDDLE_POINT-deadzone)){...
Predvidevam, da bi bilo pametno potem še dodati
else{
Pwm=0;
}

_________________
Lp. Traflc
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2
Stran 2 od 2

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 47 dni


Powered by phpBB © 2001, 2005 phpBB Group