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 

Arduino in sub

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Arduino sekcija
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
marko-x
Član
Član



Pridružen-a: Tor 02 Nov 2004 14:21
Prispevkov: 325
Aktiv.: 1.46
Kraj: prekmurje

PrispevekObjavljeno: Ned Okt 23, 2016 11:23 pm    Naslov sporočila:  Arduino in sub Odgovori s citatom

Pozdravljeni,

Sestavil sem si avtomat za vklop Led traku glede na PIR senzor, dodal pa sem še foto upor kot pogoj za vklop pod določeno vrednostjo svetlobe.

Program deluje OK, problem se pojavi, ker se podprogram prekine ko foto upor zazna preveliko svetlobo (led trak).
Rad bi da se podprogram izvede do konca (ne glede na vrednost na foto uporu).
Program se izvaja na digispark Attiny85
Prilagam program. Vprašanje je kje ga lomim. Smile

L.P.
Marjan

Koda:
void Ledon();
int zakasnitev;
int pir;
int adc_beri;
int pwmizhod = 1;
int svetloba;
int svetlobaSkala;

void setup() {
pinMode(0, INPUT);         // pin P0
pinMode(1, OUTPUT);        // pin P1   
}

void loop() {         
  adc_beri = analogRead(1);       //pin P2
 zakasnitev = map(adc_beri, 0, 1023, 200, 60000); // min. 2S, max. 60s
  pir = digitalRead(0);        //pin P0
svetloba = analogRead(0);       //pinP5

if (pir == HIGH & svetloba > 250){
Ledon();            //sub
}
  }
 
void Ledon() {
 for (int i=0; i <=255; i++){
    analogWrite(pwmizhod, i);
    delay(20);
  }
   delay(zakasnitev);
    for (int i=255; i >=0; i--) {
    analogWrite(pwmizhod, i);
    delay(20);
    }
}
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
tilz0R
Član
Član



Pridružen-a: Čet 31 Maj 2012 15:39
Prispevkov: 898
Aktiv.: 6.21
Kraj: Črnomelj

PrispevekObjavljeno: Ned Okt 23, 2016 11:43 pm    Naslov sporočila:   Odgovori s citatom

Ne razumem problema, vidim le problem, da imaš ogromne delaye v for zanki ki trajajo neskončno časa.
_________________
Knowledge sharing is caring.
majerle.eu | stm32f4-discovery.net


Nazadnje urejal/a tilz0R Tor Okt 25, 2016 12:24 am; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
marko-x
Član
Član



Pridružen-a: Tor 02 Nov 2004 14:21
Prispevkov: 325
Aktiv.: 1.46
Kraj: prekmurje

PrispevekObjavljeno: Pon Okt 24, 2016 7:26 pm    Naslov sporočila:   Odgovori s citatom

Z Delay funkcijo ni nič narobe, traja točno toliko koliko je zahtevano.
Problem je da if stavek v glavnem programu prekine podprogram ko je na spremenljivki "svetloba" več kot 250, čeprav je podprogram šele na sredini.

Zakaj to naredi je vprašanje? Rad bi da se podprogram "Ledon" izvrši v celoti brez prekinitve.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
matjazkariz
Član
Član



Pridružen-a: Sre 03 Nov 2004 18:09
Prispevkov: 1026
Aktiv.: 4.61

PrispevekObjavljeno: Pon Okt 24, 2016 7:53 pm    Naslov sporočila:   Odgovori s citatom

Razloži, kako lahko if stavek prekine izvajanje funkcije Ledon()...

Da nimaš mogoče težave zaradi watchdog timerja? Je omogočen?

_________________
LP, Matjaž
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Jaka57
Moderator
Moderator



Pridružen-a: Ned 12 Dec 2004 21:47
Prispevkov: 5773
Aktiv.: 25.92
Kraj: Grosuplje

PrispevekObjavljeno: Pon Okt 24, 2016 8:32 pm    Naslov sporočila:   Odgovori s citatom

Če bi pa napisal kako imaš to povezano bi bila enostavnejša uganka.
Koda je relativno enostavna in verjamem (preprian sem, da bi šlo enostavneje),
toda brez tvojega hardweara lahko samo ugibamo.
Ja in tilz0r je to napisal brez poznavanja tvojega HDWja

_________________
Lp, Jaka


Nazadnje urejal/a Jaka57 Pon Okt 24, 2016 9:13 pm; skupaj popravljeno 1 krat
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
marko-x
Član
Član



Pridružen-a: Tor 02 Nov 2004 14:21
Prispevkov: 325
Aktiv.: 1.46
Kraj: prekmurje

PrispevekObjavljeno: Pon Okt 24, 2016 8:57 pm    Naslov sporočila:   Odgovori s citatom

Zadeva naj bi delovala tako:

PIR senzor zazna osebo (vhod 0)
če je osvetlite enaka ali večja 250 (AI0)
potem gre v zanko kjer počasi dvigne osvetlitev na DO1 do 255 PWM
počaka določen čas ki ga nastavimo na AI1
spusti osvetlitev na 0 DO1 PWM
in gre v main zanko ter pri pravih pogojih ponovi vajo.

Problem je da ko foto upor zazna svetlobo oz. (prekorači prag za pogoj) led traka ugasne takoj ne glede v kateri sekvenci je.
Program sem preizkusil na simulatorju deluje OK na plati pa ne.

Plošča je digispark z attiny85.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
marko-x
Član
Član



Pridružen-a: Tor 02 Nov 2004 14:21
Prispevkov: 325
Aktiv.: 1.46
Kraj: prekmurje

PrispevekObjavljeno: Pon Okt 24, 2016 8:58 pm    Naslov sporočila:   Odgovori s citatom

zadeva mi že malo para živce. Smile
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
marko-x
Član
Član



Pridružen-a: Tor 02 Nov 2004 14:21
Prispevkov: 325
Aktiv.: 1.46
Kraj: prekmurje

PrispevekObjavljeno: Pon Okt 24, 2016 9:01 pm    Naslov sporočila:   Odgovori s citatom

watchdog timer ne vem če je omogočen, kje bi to preveril.
Ko foto upor ne zazna zadosti svetlobe iz led traka program deluje normalno, kot je
zamišljen.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Jaka57
Moderator
Moderator



Pridružen-a: Ned 12 Dec 2004 21:47
Prispevkov: 5773
Aktiv.: 25.92
Kraj: Grosuplje

PrispevekObjavljeno: Pon Okt 24, 2016 9:12 pm    Naslov sporočila:   Odgovori s citatom

marko-x je napisal/a:
zadeva mi že malo para živce. Smile

Meni pa ne, ampak, lepo bi bilo, če bi možakar pokazal, kako je to fizično naredil.
Hec je. da je koda v redu, seveda, če je senzor pravilno priključen, glede na kodo!

_________________
Lp, Jaka
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
marko-x
Član
Član



Pridružen-a: Tor 02 Nov 2004 14:21
Prispevkov: 325
Aktiv.: 1.46
Kraj: prekmurje

PrispevekObjavljeno: Pon Okt 24, 2016 9:28 pm    Naslov sporočila:   Odgovori s citatom

Našel napako. A0 je na pinu P5 (plošča) kar je na procesorju reset.
Program se je pri osvetljenem foto uporu resetiral.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Branez
Moderator
Moderator



Pridružen-a: Pon 14 Apr 2003 7:21
Prispevkov: 7770
Aktiv.: 34.88
Kraj: Koprivnica HR

PrispevekObjavljeno: Pon Okt 24, 2016 10:02 pm    Naslov sporočila:   Odgovori s citatom

@ marko-x: Se ti ne zdi da bi se blio lepo zahvaliti?
Jaka57 je napisal/a:
...
Hec je. da je koda v redu, seveda, če je senzor pravilno priključen, glede na kodo!

_________________
The true sign of intelligence is not knowledge but imagination.
Creativity is intelligence having fun!

Albert Einstein
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
marko-x
Član
Član



Pridružen-a: Tor 02 Nov 2004 14:21
Prispevkov: 325
Aktiv.: 1.46
Kraj: prekmurje

PrispevekObjavljeno: Tor Okt 25, 2016 7:50 am    Naslov sporočila:   Odgovori s citatom

Ja hvala lepa. Hec je da sem nalagal nov bootlader. Prejšnji je imel izklopljeno funkcijo reseta.

L.P.
Marjan
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Jaka57
Moderator
Moderator



Pridružen-a: Ned 12 Dec 2004 21:47
Prispevkov: 5773
Aktiv.: 25.92
Kraj: Grosuplje

PrispevekObjavljeno: Tor Okt 25, 2016 5:46 pm    Naslov sporočila:   Odgovori s citatom

marko-x je napisal/a:
...Hec je da sem nalagal nov bootlader. Prejšnji je imel izklopljeno funkcijo reseta....
Čak, ali ni to stvar Fuse Bitov in ne Bootloaderja?


Tiny85_Fusebits.JPG
 Opis:
 Velikost datoteke:  109.84 KB
 Pogledana:  14 krat

Tiny85_Fusebits.JPG



_________________
Lp, Jaka
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
marko-x
Član
Član



Pridružen-a: Tor 02 Nov 2004 14:21
Prispevkov: 325
Aktiv.: 1.46
Kraj: prekmurje

PrispevekObjavljeno: Čet Okt 27, 2016 2:22 pm    Naslov sporočila:   Odgovori s citatom

Ja je stvar fuse bitov. Tega nisem označil. Very Happy
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Arduino sekcija Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
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: 68 dni


Powered by phpBB © 2001, 2005 phpBB Group