Hasičská časomiera pre 2 útoky - Arduino a LCD displej
Moderátori: psichac, Moderátori
Hasičská časomiera pre 2 útoky - Arduino a LCD displej
Zdravím, vytvoril som hasičskú časomieru s použitím mikrokontroléra Arduino UNO, LCD displej 20x4 cez I2C modul, 4 tlačidlá.
Tlačidlo 1 spúšťa časovač, spúšťa aj pri zapauzovaní času
Tlačidlo 2 --> zastavenie času pre ľavý útok
Tlačidlo 3 --> zastavenie času pre pravý útok
Tlačidlo 4 --> vynulovanie časovača aj v priebehu počítania času
https://www.youtube.com/watch?v=7KeruFwBVKc
Plánujem to ešte rozšíriť s počítaním na tisíciny sekundy
Tlačidlo 1 spúšťa časovač, spúšťa aj pri zapauzovaní času
Tlačidlo 2 --> zastavenie času pre ľavý útok
Tlačidlo 3 --> zastavenie času pre pravý útok
Tlačidlo 4 --> vynulovanie časovača aj v priebehu počítania času
https://www.youtube.com/watch?v=7KeruFwBVKc
Plánujem to ešte rozšíriť s počítaním na tisíciny sekundy
- jirka.jirka.
- Ultimate člen
- Príspevky: 1538
- Dátum registrácie: 17 Okt 2008, 00:00
- Bydlisko: Uherské Hradiště
- Kontaktovať používateľa:
Re: Hasičská časomiera pre 2 útoky - Arduino a LCD displej
No, tak ukaž kód. Rádi se podíváme, určitě bude ještě co vylepšovat, můžeme poradit. Nebo se sami něco naučit. Protože takhle přesné (tisíciny) už vyžaduje přesné nastavení přerušení. Nebo si to aspoň myslím.Plánujem to ešte rozšíriť s počítaním na tisíciny sekundy
0
Re: Hasičská časomiera pre 2 útoky - Arduino a LCD displej
ako trigrujes eventy od jednotlivych vonkajsich podnetov, (v tvojom pripade tlacidla), v akych casovych usekoch pocita casovac? to je HW casovac abo nejaky free running counter (neviem ci take nieco ma atmega)?
0
Návrh zapojení s jednočipovými mikropočítačmi, tvorba programového vybavenia pre mikropočítače
http://www.jk-elektronika.info/index.html
predaj !!
http://svetelektro.com/modules.php?name ... 54#p549154
http://www.jk-elektronika.info/index.html
predaj !!
http://svetelektro.com/modules.php?name ... 54#p549154
- Najgel
- Ultimate člen
- Príspevky: 1695
- Dátum registrácie: 02 Júl 2010, 00:00
- Bydlisko: Námestovo, Žilina(škola)
- Vek: 29
Re: Hasičská časomiera pre 2 útoky - Arduino a LCD displej
V praxi nepoužiteľné. Ako chceš snímať terče ? Potrebuješ aspoň 80m káblu, ak chceš stopky na nejakom stanovišti, ďalej je problém snímať signál na takú vzdialenosť, sú tam už oneskorenia. V reálnom nasadení na tisícini zabudni.
Riešil som takúto vec, a stretol som sa s mnohými problémami, momentálne mám rozrobenú už 3. verziu HW.
Riešil som takúto vec, a stretol som sa s mnohými problémami, momentálne mám rozrobenú už 3. verziu HW.
0
Keď neodpisujem tak tu nie som, alebo som a neodpisujem
MPLAB & PIC
Texas Instruments DSP TMS320Fxxxxx
Tevo Tarantula 3D
Ponúkam 3D tlač.
Ponúkam návrh a vývoj elektroniky na zákazku.
UNIZA 5.ročník
MPLAB & PIC
Texas Instruments DSP TMS320Fxxxxx
Tevo Tarantula 3D
Ponúkam 3D tlač.
Ponúkam návrh a vývoj elektroniky na zákazku.
UNIZA 5.ročník
Re: Hasičská časomiera pre 2 útoky - Arduino a LCD displej
a ake bolo oneskorenie na 80m vedeni?
0
Návrh zapojení s jednočipovými mikropočítačmi, tvorba programového vybavenia pre mikropočítače
http://www.jk-elektronika.info/index.html
predaj !!
http://svetelektro.com/modules.php?name ... 54#p549154
http://www.jk-elektronika.info/index.html
predaj !!
http://svetelektro.com/modules.php?name ... 54#p549154
Re: Hasičská časomiera pre 2 útoky - Arduino a LCD displej
Sú tam tlačidlá, nie snímače terčov. Tlačidlá stláča "rozhodca" Počítadlo používa millis.
- Najgel
- Ultimate člen
- Príspevky: 1695
- Dátum registrácie: 02 Júl 2010, 00:00
- Bydlisko: Námestovo, Žilina(škola)
- Vek: 29
Re: Hasičská časomiera pre 2 útoky - Arduino a LCD displej
Čo som meral, tak mi to reaguje takmer okamžite, nábeh na úroveň som mal za 500uS, ale t prevažne kvôli môjmu HW, aby som aj eliminoval zákmity. Takže oneskorenie na linke nie nie až také veľké, ospravedlňujem sa za dezinformáciu.Kado napísal:a ake bolo oneskorenie na 80m vedeni?
0
Keď neodpisujem tak tu nie som, alebo som a neodpisujem
MPLAB & PIC
Texas Instruments DSP TMS320Fxxxxx
Tevo Tarantula 3D
Ponúkam 3D tlač.
Ponúkam návrh a vývoj elektroniky na zákazku.
UNIZA 5.ročník
MPLAB & PIC
Texas Instruments DSP TMS320Fxxxxx
Tevo Tarantula 3D
Ponúkam 3D tlač.
Ponúkam návrh a vývoj elektroniky na zákazku.
UNIZA 5.ročník
-
- Ultimate člen
- Príspevky: 2328
- Dátum registrácie: 25 Jún 2013, 21:06
- Bydlisko: Krajné
- Vek: 57
- Kontaktovať používateľa:
Re: Hasičská časomiera pre 2 útoky - Arduino a LCD displej
Nuž keď to prezentuješ ako výrobok tak čo sa čuduješ.
Ja to tiež hodnotím ako veľký posun v prezentovaní k lepšiemu.
S milis() asi tisícinovú presnosť neurobíš. To už chce aby to bežalo na prerušeniach. Výhoda je že tu ani nemusíš robiť debouncicg. Prvý pulz tlačítka štart to spustí. Prvý pulz na vstupe stop tlačítka (snímača) to zastaví. Tak som to robil pre našich hasičov kedysi v dávnej minulosti. Presnosť im stačila na stotiny.
Najgel: prečo sú tisíciny nereálne?
Kado: Free runnig timer na AVR urobíš. Aj 8 aj 16 bitový. Aj s korektným odchytením stavu. Viem nie je to veľa ale spolu s pretečením a s tým že tie stopky nič iného nerobia to nie je problém.
Najgel: prečo eliminovať zákmity?
Ja to tiež hodnotím ako veľký posun v prezentovaní k lepšiemu.
S milis() asi tisícinovú presnosť neurobíš. To už chce aby to bežalo na prerušeniach. Výhoda je že tu ani nemusíš robiť debouncicg. Prvý pulz tlačítka štart to spustí. Prvý pulz na vstupe stop tlačítka (snímača) to zastaví. Tak som to robil pre našich hasičov kedysi v dávnej minulosti. Presnosť im stačila na stotiny.
Najgel: prečo sú tisíciny nereálne?
Kado: Free runnig timer na AVR urobíš. Aj 8 aj 16 bitový. Aj s korektným odchytením stavu. Viem nie je to veľa ale spolu s pretečením a s tým že tie stopky nič iného nerobia to nie je problém.
Najgel: prečo eliminovať zákmity?
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
- boraicho
- Ultimate člen
- Príspevky: 12407
- Dátum registrácie: 03 Feb 2007, 00:00
- Bydlisko: Prešov
- Vek: 35
- Kontaktovať používateľa:
Re: Hasičská časomiera pre 2 útoky - Arduino a LCD displej
čo je free runing timer?
0
"Aj nevinne vyzerajúca súčiastka, môže byť príčinou nefunkčnosti zariadenia a tou kondenzator 100% je"
3D REBEL II + PLA + PETG
CNC 1810 na DPS
3D REBEL II + PLA + PETG
CNC 1810 na DPS
-
- Ultimate člen
- Príspevky: 2328
- Dátum registrácie: 25 Jún 2013, 21:06
- Bydlisko: Krajné
- Vek: 57
- Kontaktovať používateľa:
Re: Hasičská časomiera pre 2 útoky - Arduino a LCD displej
volne bežiaci časovač, ktorého stav si odchytíš kedy chceš. V podstate aj tá milis() by sa na to dala zneužiť. Len tam čarujú aby to čo najpresnejšie vyšlo na jednu milisekundu.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
Re: Hasičská časomiera pre 2 útoky - Arduino a LCD displej
Tak neži v Milke aby si si ma doberal.
-- Spojený príspevok 07 Sep 2017, 23:29 --
Tu je kód, nie celý.. Potrebujem následovné. Vypisovať tisíciny sekundy, avšak neviem ako to dopasovať do existujúceho kódu.
Momentálne to funguje tak, že mám jedno desatinné miesto za sekundami, potrebujem však 3.
Vedeli by ste mi s tým pomôcť? Ďakujem, pravdepodobne treba rozšíriť tenth, alebo pridať viacero premenných pre tie desatinné miesta?
-- Spojený príspevok 07 Sep 2017, 23:29 --
Tu je kód, nie celý.. Potrebujem následovné. Vypisovať tisíciny sekundy, avšak neviem ako to dopasovať do existujúceho kódu.
Momentálne to funguje tak, že mám jedno desatinné miesto za sekundami, potrebujem však 3.
Vedeli by ste mi s tým pomôcť? Ďakujem, pravdepodobne treba rozšíriť tenth, alebo pridať viacero premenných pre tie desatinné miesta?
Naposledy upravil/-a martinius96 v 08 Sep 2017, 01:25, upravené celkom 1 krát.
Re: Hasičská časomiera pre 2 útoky - Arduino a LCD displej
Respektíve to skusme tu na banalnom príklade s jednym tlačidlom, ktoré spustí/pauzuje prebiehajúci čas.
Nejaké tipy ako dostať 3 desatinné miesta za sekunkami?
Ja tomu chápem následovne:
Mám čas napr 00:00:9 - čiže to je 900ms, hoci mi to zobrazí 9 ale môže tam byť 938ms. Čiže za tou 9-tkou (desatinou) bežia stotiny a tesíciny, ktoré tu 9-tku inkrementujú už následne na sekundu, čiže sa bavíme o stovkách milisekúnd?. Potrebujem len tie stovky zobraziť a čas tam zastaviť normálne ako doteraz. Nič viac nepotrebujem. Chcem to takýmto štýlom. Prerušenia nebudú teda potrebné ak tomu rozumiem správne. Prípadne potom urobím nejaký odpočet, nakoľko mám pri tlačidlách 100ms stlačenie tlačidla, určite postačí aj 30 alebo 50 ms pri millise.
Kód: Vybrať všetko
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x3F // Define I2C Address where the PCF8574A is
// Address can be changed by soldering A0, A1, or A2
// Default is 0x27
// map the pin configuration of LCD backpack for the LiquidCristal class
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
LiquidCrystal_I2C lcd(I2C_ADDR,
En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin,
BACKLIGHT_PIN, POSITIVE);
const int spustacresettlacidlo = 12; //The pin for spustacresettlacidlo
long lastPressedspustacresettlacidlo = 0; //Last millisecond we pressed spustacresettlacidlo
boolean run = false; //Should the system run?
int spustacresettlacidloState = LOW; //The value the spustacresettlacidlo reads
int spustacresettlacidloCurrState = LOW; //The last value of spustacresettlacidlo
long timer = 0; //The timer
int second = 0;
int minute = 0;
int tenth = 0;
void setup() {
lcd.begin(20, 4); // intialise the LCD.
lcd.setBacklight(HIGH); // Turn on backlight, LOW for off
pinMode(spustacresettlacidlo, INPUT);
lcd.setCursor(0,0);
lcd.print("00:00:0 L");
lcd.setCursor(0,1);
lcd.print("00:00:0 P");
}
void tickClock() {
Serial.println(millis() /10);
if((timer - millis()/100) >= 100 || timer == 0) {
tick();
timer = millis()/100;
}
}
void loop() {
tickClock(); //Start ticking the clock
spustacresettlacidloState = digitalRead(spustacresettlacidlo);
checkStart();
}
void checkStart() {
if(spustacresettlacidloState != spustacresettlacidloCurrState) { //Check if the button state has changed
if(spustacresettlacidloState == HIGH && (millis()-lastPressedspustacresettlacidlo) > 100 || lastPressedspustacresettlacidlo == 0) {
lastPressedspustacresettlacidlo = millis();
run = !run; //Switch the running state
}
}
spustacresettlacidloCurrState = spustacresettlacidloState; //Set the current state equals the button state
}
void tick() {
if(run) {
updateLCD();
if(tenth == 9) {
tenth = 0;
if(second == 59) {
second = 0;
minute++;
} else {
second++;
}
} else {
tenth++;
}
}
}
void updateLCD() {
//
lcd.setCursor(0,0);
if(minute < 10) { // If hour does not have 2 digits
lcd.print("0");
}
lcd.print(minute, DEC);
lcd.print(":");
if(second < 10) { // If minute does not have 2 digits
lcd.print("0");
}
lcd.print(second, DEC);
lcd.print(":");
lcd.print(tenth, DEC);
//
lcd.setCursor(0,1);
if(minute < 10) { // If hour does not have 2 digits
lcd.print("0");
}
lcd.print(minute, DEC);
lcd.print(":");
if(second < 10) { // If minute does not have 2 digits
lcd.print("0");
}
lcd.print(second, DEC);
lcd.print(":");
lcd.print(tenth, DEC);
}
Ja tomu chápem následovne:
Mám čas napr 00:00:9 - čiže to je 900ms, hoci mi to zobrazí 9 ale môže tam byť 938ms. Čiže za tou 9-tkou (desatinou) bežia stotiny a tesíciny, ktoré tu 9-tku inkrementujú už následne na sekundu, čiže sa bavíme o stovkách milisekúnd?. Potrebujem len tie stovky zobraziť a čas tam zastaviť normálne ako doteraz. Nič viac nepotrebujem. Chcem to takýmto štýlom. Prerušenia nebudú teda potrebné ak tomu rozumiem správne. Prípadne potom urobím nejaký odpočet, nakoľko mám pri tlačidlách 100ms stlačenie tlačidla, určite postačí aj 30 alebo 50 ms pri millise.
Re: Hasičská časomiera pre 2 útoky - Arduino a LCD displej
Ak už nechceš prerušenie, tak pracuj s micros (), je to lepšie riešenie ako deliť millis. Neskúšal som to, je to iba tip. Ja by som to riesil prerušením a mal by som to pod kontrolou.
0
-
- Ultimate člen
- Príspevky: 2328
- Dátum registrácie: 25 Jún 2013, 21:06
- Bydlisko: Krajné
- Vek: 57
- Kontaktovať používateľa:
Re: Hasičská časomiera pre 2 útoky - Arduino a LCD displej
ešte raz sa všetkých dvoch pýtam:
Na čo je tam ten debouncing? Aby to bola ešte väčšia náhoda ako doteraz?
Ten kód si nemal ukazovať. Potom by si mohol prípadného zákazníka uvrtať do toho že to meria presne povedzme na milisekundu. Takto ale ak sa tomu bude rozumieť tak uvidí že je to podobný prevziaty kus kódu ako ten cyklo simulátor. A tie tvoje dorábky majú zvyčajne efekt znižujúci hodnotu pôvodného riešenia.
Na to aby to meralo s presnosťou na milisekundu sú prerušenia nutné. Myslíš že Kado sa pýtal len tak?
Na čo je tam ten debouncing? Aby to bola ešte väčšia náhoda ako doteraz?
Ten kód si nemal ukazovať. Potom by si mohol prípadného zákazníka uvrtať do toho že to meria presne povedzme na milisekundu. Takto ale ak sa tomu bude rozumieť tak uvidí že je to podobný prevziaty kus kódu ako ten cyklo simulátor. A tie tvoje dorábky majú zvyčajne efekt znižujúci hodnotu pôvodného riešenia.
Na to aby to meralo s presnosťou na milisekundu sú prerušenia nutné. Myslíš že Kado sa pýtal len tak?
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
Re: Hasičská časomiera pre 2 útoky - Arduino a LCD displej
martinius96: ak by si chcel, mozem ti s tym pomoct, mam tu na stole jedno starsie 32bit DSP od Texas Instruments, jeho interne PLL (z PLL su napajane systemove hodiny) bezi na 60Mhz, ma aj free run counter 32bit, jeden tik je 16,6ns , s tym by sme pomerali kadečo
0
Návrh zapojení s jednočipovými mikropočítačmi, tvorba programového vybavenia pre mikropočítače
http://www.jk-elektronika.info/index.html
predaj !!
http://svetelektro.com/modules.php?name ... 54#p549154
http://www.jk-elektronika.info/index.html
predaj !!
http://svetelektro.com/modules.php?name ... 54#p549154
Re: Hasičská časomiera pre 2 útoky - Arduino a LCD displej
Potrebujem iba aby sa odčítal čas 100ms, na ten je nastavené tlačidlo. Neviem nájsť žiaden tutoriál ani s tým timerom ani iným spôsobom pre tisíciny. Neviem nájsť nič vhodné.
-
- Ultimate člen
- Príspevky: 3963
- Dátum registrácie: 04 Feb 2013, 22:04
- Bydlisko: U alibabky v Poprade
- Vek: 32
Re: Hasičská časomiera pre 2 útoky - Arduino a LCD displej
Neviem, ci sa na to riesia arduinko kniznice.
V Ccku by si sa mal poobzerat po timeroch a interruptoch.
V Ccku by si sa mal poobzerat po timeroch a interruptoch.
0
Motto: Nikto nie je tak velky, aby sa nevosiel do truhly.
-
- Podobné témy
- Odpovedí
- Zobrazení
- Posledný príspevok
-
- 4 Odpovedí
- 1062 Zobrazení
-
Posledný príspevok od používateľa lucky62
-
- 14 Odpovedí
- 1173 Zobrazení
-
Posledný príspevok od používateľa mr.dred
-
- 1 Odpovedí
- 741 Zobrazení
-
Posledný príspevok od používateľa Sani1
-
- 1 Odpovedí
- 542 Zobrazení
-
Posledný príspevok od používateľa mclareniak
-
- 3 Odpovedí
- 1148 Zobrazení
-
Posledný príspevok od používateľa Atlan