jedno pitanje. Da li je zelis da umesto ovog tvog programa napravim rad pomocu sekvence Prvi radi 60min + 10min pauza, pa onda drugi radi 60min + 10min pauza i tako u krug (ista prica i za drugi i treci) ili nesto drugo? Ne razumem tacno kako treba da radi i ako se nastavlja na tvoj program, gde da ga nastavim.
Da trebalo bi mi tako za jedan dio programa koji će biti neovisan od onoga što sam već postavio, a u tome dijelu koda što sam postavio trebalo bi mi samo po 10 sekundi za onaj delay što sam ja pisao.
ne nisi mi dobro rekao. Razumem skroz tu pricu oko sekvence za koju sam te pitao. Tvoj program koji si postavio u prilogu, radi na sledeci naci:
1. Ako je pritisnut taster START/STOP i ako je dobijen uslov motora 1 => ukljuci motor1
2. Pauza od xxx vremenskih jedinica
3. Ako je dobijen uslov motora 2 => ukljuci motor 2
4. Pauza od xxx vremenskih jedinica
5. Ako je dobijen uslov motora 3 => ukljuci motor 3
6. Pauza od xxx vremenskih jedinica
7. Ako je dobijen uslov motora 4 => ukljuci motor 4
8. Pauza od xxx vremenskih jedinica
Ovim algoritmom su motori samo ukljuceni sa vremenskim zatezanjem od po xxx vremenskih jedinica. Iskljuciju se samo ako nije aktivan START/STOP ili ako nema uslova nekog od motora. Da li ovako treba da radi program? Tako je napisan. Gde tacno treba da se nadoveze onda ona sekvenca i kada se zavrsava?
Da taj program tako treba da radi i on se ne završava, treba stalno da provjerava da li su uslovi ispunjeni.
A ta sekvenca sa radom od 60 minuta i pauzom od 10 minuta nema veze sa ovim gore uslovima, nego samo da posebna dva izlaza pali nasumično svakih 60 minuta sa pauzama od 10 minuta kada nijedan od ta dva izlaza nije aktivan.
Nemoj da ispadam dosadan, ali neke stvari mi nisu jasne, pa moram da ih razjasnim, posto hocu i gornji program da ti napisem kako treba.
Kada se ukljuci prvi motor, drugi motor se ukljucuje tek posle xxx vremenskih jedinica. Da su ta vremenska zatezanja, samo da bi se napravila zadrska da se ukljucuje jedan po jedan, a ne svi odjednom? To je sve.
12-26-2016, 11:56 PM (This post was last modified: 12-27-2016, 12:04 AM by Makso.)
Da tako je upravu si, samo vremensko zatezanje palenja motora, jer ne smiju se paliti odjednom svi, za taj dio programa samo treba da bude vremensko zatezanje od 10 sekundi između palenja motora i to je to.
A ovo što mi treba za 60 minuta i 10 minuta nema nikakve veze sa uslovima motora, ali baš nikakve, motori imaju samo to vremensko zatezanje i ništa više, i oni rade dok su njihovi uslovi ispunjeni što sam ja odradio u kodu.
Za ovih 60 + 10 minuta, imaću posebna dva izlaza koji će se paliti nasumično kombinacijom ta dva vremena (60 i 10 minuta), i ta dva izlaza će imati svoj posebni jedan taster za aktivaciju odbrojavanja, a motori će posebno raditi sa svojim uslovima, znači to treba da bude nezavisno jedno od drugog.
Ako me sad razumiješ, ako ne da ti nekako to ispišem u kodu da lakše razumiješ?
Izvini što nisam ranije odgovorio, stalno sam na terenu pa ne stignem.
// Ispitivanje uslova motora
if(Current_State == STOP)
{ motor1 = false; // Ako je masina u STOP modu, iskljuci motor1
motor2 = false; // Ako je masina u STOP modu, iskljuci motor2
motor3 = false; // Ako je masina u STOP modu, iskljuci motor3
motor4 = false; // Ako je masina u STOP modu, iskljuci motor4
}
}
}
Sličan je prethodnom kodu za koji sam tražio pomoć, našao sam neki kod koji broji preko millis-a, i to je sve radilo dok nisam upisao if uslov i više se ništa ne dešava?
Code:
int ventilator = 12;
const int vrijeme1 = 6;
const int vrijeme2 = 7;
int vrijeme1State = LOW;
int vrijeme2State = LOW;
unsigned long time_since_last_reset = 0;
int interval1 = 1000;
int interval2 = 3000;
int interval3 = 3000;
int interval4 = 5000;
Makso,
tvoje surfovanje i skidanje tudjih programa ne vodi nikuda. Moras da imas osnove razumevanja rada kontrolera i njegovog izvrsavanja programa. Drugacije ces uvek biti u rekurziji i neces nista uspeti da uradis.
Mislim da preko foruma treba da se nauce neke stvari, a ne otklanjanje tudjih gresaka, sto je mnogo tezi posao.
@vojinilic
Potpuno te razumijem, problem mi i jeste što ne znam i nemam nikakvog iskustva sa ovim načinom programiranja, ali eto nešto pokušavam, možda razumijem kako kontroler radi ali, samo kad nešto promašim u kodu ili ne napišem pravilno i onda ne znam šta gdje sam pogriješio, malo sam programirao i PLC kontrolere i to mi je opet nekako daleko jednostavnije programirati, i onda imam velike muke sa Arduinom. Onda gledam tuđe kodove pa modifikujem jer ne bih znao sve iznova napisati.
Ali, upsjeo sam i naći grešku šta sam uradio u modifikaciji koda, umjesto if uslova za taster sam zamjenio sa while(digitalRead(vrijeme1) == HIGH){, i sada radi kako sam zamislio.
Ugradio sam Arduino u jedan ormar u kojem su energetske sklopke i ostala automatika, imam Arduino na posebnoj ploči sa svojim napajanjem i nekoliko relea koji propuštaju 220V za sklopke, tu su još prekidači koji se nalaze na vratima ormara i na njih sam propustio +5V i vežu se na ulaze Arduina, za povezivanje sam koristio dvožilni kabal sa širmom (shield ili kako se već zove), taj širm sam uvezao od svih prekidača zajedno i povezao na GND napajanja od Arduina.
Problem je sledeći, Arduino odradi isti proces nekoliko puta u krug i onda se jednostavno zablokira i moram ga restartovat i opet tako?
Da li sam dobro povezao širmove od kablova ili imam neke druge smetnje, ili treba uraditi uzemljenje?
(01-12-2017, 06:58 PM)Makso Wrote: Ugradio sam Arduino u jedan ormar u kojem su energetske sklopke i ostala automatika, imam Arduino na posebnoj ploči sa svojim napajanjem i nekoliko relea koji propuštaju 220V za sklopke, tu su još prekidači koji se nalaze na vratima ormara i na njih sam propustio +5V i vežu se na ulaze Arduina, za povezivanje sam koristio dvožilni kabal sa širmom (shield ili kako se već zove), taj širm sam uvezao od svih prekidača zajedno i povezao na GND napajanja od Arduina.
Problem je sledeći, Arduino odradi isti proces nekoliko puta u krug i onda se jednostavno zablokira i moram ga restartovat i opet tako?
Da li sam dobro povezao širmove od kablova ili imam neke druge smetnje, ili treba uraditi uzemljenje?
Ha stari problem. Moras sve galvanski da ovojis, opto kalplere i odvojeno napajanje. macola je pisao o tome
Jedan od mogucih uzroka je propadanje napona napajanja, pa se zbog toga mcu ubije - programski brojac pokazuje na nepostojecu lokaciju. Probaj da ukljucis BOD i POR na MCU.
void loop() {
Serial.println(" test ");
delay(1000);
}
kad kliknem na Verify
sve prodje OK i dobijam poruku Done compiling i nema nekih greski.
E sad me interesuje ovo:
posto arduino uno treba da stigne za neki dan hteo bih probati nesto sa modelom ARDUINO UNO u proteusu.Da bih probao naravno treba da u model ubacim HEX file od probnog KODA. Uz sve napore HEX file ovoga KODA gore ne mogu da pronadjem.
Gde je taj FILE jer kompajliranje je proslo bez greske?