Program pre Arduino
Moderátor: Moderátori
-
- Ultimate člen
- Príspevky: 2697
- Dátum registrácie: 20 Júl 2010, 00:00
- Bydlisko: okolie KE
- Vek: 28
Re: Program pre Arduino
Matematika je ešte ten lepší príklad (ak sa bavíme o +-*/). Vie tu niekto napísať v assembleri konverziu int/float na textovú reprezentáciu? Neviem ani či to chcem vidieť
Je to pravda, niektoré veci sa človek rýchlejšie dozvie na fóre. Na druhú stranu jedna zo základných zručností vývojára je aj vedieť si nájsť veci na internete - nikto nevie všetko.
Je to pravda, niektoré veci sa človek rýchlejšie dozvie na fóre. Na druhú stranu jedna zo základných zručností vývojára je aj vedieť si nájsť veci na internete - nikto nevie všetko.
0
-
- Ultimate člen
- Príspevky: 6368
- Dátum registrácie: 20 Júl 2007, 00:00
- Vek: 41
Re: Program pre Arduino
nikto ti nezakazuje pisat if then else
ja som ale tvor lenivy a tak radsej pouzivam skrateny zapis (ak je to vhodne). sprehladnuje a skracuje to kod. To, ze existuje viac moznosti zapisu, mne to nevadi, ved o tom programovanie je. Roznymi moznostami dosiahnut ten isty vysledok. a ked na nieco nezname v cudzom kode narazim, tak si proste vyhladam co to je. A velakrat mi taketo finty dost pomohli.
ked ti vyhovuje asm, tak si programuj v nom. mne zas vyhovuje, ked mam na vyber.
ja som ale tvor lenivy a tak radsej pouzivam skrateny zapis (ak je to vhodne). sprehladnuje a skracuje to kod. To, ze existuje viac moznosti zapisu, mne to nevadi, ved o tom programovanie je. Roznymi moznostami dosiahnut ten isty vysledok. a ked na nieco nezname v cudzom kode narazim, tak si proste vyhladam co to je. A velakrat mi taketo finty dost pomohli.
ked ti vyhovuje asm, tak si programuj v nom. mne zas vyhovuje, ked mam na vyber.
0
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.
Re: Program pre Arduino
ja som ale vývojar není.....som elektrikár aktuálne pracujem na meraní a regulacií kde sa dostávam aj k ochranám na VN,VVN zariadeniam. A kedže sa stále zdokonalujem a chcem vedieť viac tak som sa dal aj okrem toho a programovanie. Keď mám čas tak skúšam. Toto je taký moj projektík na doma detektor LPG a CO2. Neskor pojdem do niečoho viac.maskrtnik01 napísal: ↑25 Aug 2022, 09:19Matematika je ešte ten lepší príklad (ak sa bavíme o +-*/). Vie tu niekto napísať v assembleri konverziu int/float na textovú reprezentáciu? Neviem ani či to chcem vidieť
Je to pravda, niektoré veci sa človek rýchlejšie dozvie na fóre. Na druhú stranu jedna zo základných zručností vývojára je aj vedieť si nájsť veci na internete - nikto nevie všetko.
0
Re: Program pre Arduino
takze zase sa vraciam k arduinu a bádam ako spravit funckiu return ked pri zmacknuti tlacidla chcem poslat program na zaciatok. Ide o to ze senzor pisti a chcem ho vyresetovat napriklad na 5 minut tlacidlom.
0
- Mek
- Zaslúžilý člen
- Príspevky: 1319
- Dátum registrácie: 15 Okt 2015, 20:49
- Bydlisko: Žilina
- Vek: 37
- Kontaktovať používateľa:
Re: Program pre Arduino
V loop() metode kde kontrolujes stav tlacidla, ak bolo stlacene, si odlozis do premennej momentalny cas cez funkciu millis().
V casti, kde ma byt vyvolane pipanie, das if, kde porovnas, ci ubehlo viac ako 5 minut od posledneho casu, ktory si si odlozil.
V casti, kde ma byt vyvolane pipanie, das if, kde porovnas, ci ubehlo viac ako 5 minut od posledneho casu, ktory si si odlozil.
0
... byvaly spravca Hospudky u amplionu, Martinekk-ov brat. Nemam vystudovane elektro, je to len moje hobby. Povolanim som SW inzinier.
Moja databaza suciastok: ELPARTS
Moj velky elektro projekt: MEGA TRANSISTOR CLOCK
Moja databaza suciastok: ELPARTS
Moj velky elektro projekt: MEGA TRANSISTOR CLOCK
Re: Program pre Arduino
McSmekac, reset tlacitko už arduino obsahuje. Navrat na zaciatok programu nieje riesenim toho co potrebujes. Mal by si si na zaciatok uvedomit ze program v arduine (to co je v loope) bezi stale dookola. Tam sa proste musis vysantit s casmy a ifmy a pomocnymi premennymi. Popis co presne ocakavas a niekto ti mozno poradi ako co najlahsie na to. Ciest bude urcite viacero ale urcite nie navrat na zaciatok programu.
0
Re: Program pre Arduino
Viem ze arduino ma reset tlacidlo ale ja chcem dalsie tlacidlo pretoze to bude ulozene v krabicke. Ocakavam od toho to ze LPG,CO2 senzor vyssie co je program ak sa aktivuje a bude pipat tak ked dobehnem a odstranim poruchu chcem aktivovanim tlacidla napriklad vratit program na zaciatok kde by bol cas poviem priklad 10 minut a po tich 10 minut by zase snimal zo senzorov.
0
Re: Program pre Arduino
Kazdy tu prilozeny kod automaticky vypne hukanie ked senzor zaznamena nizsiu hodnotu -ked odstranis poruchu
Este raz, program beha stale dookola, ked zisti co2 huka, ked nie nehuka
Este raz, program beha stale dookola, ked zisti co2 huka, ked nie nehuka
0
Re: Program pre Arduino
to viem ale ja chcem napriklad po zatlaceni tlacidla aby nabehol cas cca 10 minut kedy ignoruje hukanie
skusil som to nejak takto
if (tlacidlo=digitalRead(2)){
noTone(buzzer);
delay(10000);
return 1;
}
else {
return 0;
skusil som to nejak takto
if (tlacidlo=digitalRead(2)){
noTone(buzzer);
delay(10000);
return 1;
}
else {
return 0;
0
-
- Ultimate člen
- Príspevky: 2697
- Dátum registrácie: 20 Júl 2010, 00:00
- Bydlisko: okolie KE
- Vek: 28
Re: Program pre Arduino
Stará známa cesta do pekiel - delay.
Nie je to celé zle, ale treba si zvyknúť nepoužívať delay. Správny postup je používať millis, a premennú kde si zaznačím čas dôležitej udalosti - napríklad stlačenie tlačidla. Ak už ubehlo 10 minút, pozriem či je dôvod húkať, a prípadne húkam. Ak neubehlo, nehúkam.
Dôvod? Ak chceme od MCU jednu jedinú primitívnu vec, možno žiaden. Skoro vždy ale nakoniec chceme viacero vecí. A keď jedno vykonanie loop trvá vďaka delayom sekundy, alebo aj minúty. Tak sa stane, že potom človek nechápe, prečo to na stlačenie tlačidla reaguje iba vo veľmi špecifickom čase. Práve preto, že procesor zabíja čas v delayi, a nemôže riešiť zvyšok loop-u.
Nie je to celé zle, ale treba si zvyknúť nepoužívať delay. Správny postup je používať millis, a premennú kde si zaznačím čas dôležitej udalosti - napríklad stlačenie tlačidla. Ak už ubehlo 10 minút, pozriem či je dôvod húkať, a prípadne húkam. Ak neubehlo, nehúkam.
Dôvod? Ak chceme od MCU jednu jedinú primitívnu vec, možno žiaden. Skoro vždy ale nakoniec chceme viacero vecí. A keď jedno vykonanie loop trvá vďaka delayom sekundy, alebo aj minúty. Tak sa stane, že potom človek nechápe, prečo to na stlačenie tlačidla reaguje iba vo veľmi špecifickom čase. Práve preto, že procesor zabíja čas v delayi, a nemôže riešiť zvyšok loop-u.
0
-
- Pokročilý člen
- Príspevky: 687
- Dátum registrácie: 06 Dec 2020, 11:46
- Bydlisko: Banska Stiavnica
- Vek: 39
Re: Program pre Arduino
Tu je riesenie cez jeden pomocny flag sensor_run.
Hned na zaciatku v setupe zapnes senzor a takztiez si do sensor_run poznacis, ze si ho zapol.
Ak senzor zahlasi chybu (alebo aj nemusi) a ty stlacis tlacitko, vypne senzor, poznaci si do sensor_run=false, taktiez si poznaci aktualny cas do premnnej button_press_time a tym opusti if(digitalRead(2) == HIGH) zatvorky.
Hned potom, kedze si dal do senzor_run = false, program zacne neustale skakat do if(senzor_run == false) casti, a teda zacne kontrolovat rozdiel medzi akt. casom a casom ktory si si poznacil. Ak je viac nez 600000ms tak opat zapne senzor a taktiez si poznaci sensor_run = true (senzor beziaci).
Potom uz do if(senzor_run == false) program skakat nebude, teda kym znova nestlacis tlacitko.
Pozn: Funkciu zapni_senzor() a vypni_senzor() si musis spravit, alebo ju uz mas spravenu.
Pozn: Neskusal som to, ale pride mi to ciste riesenie.
Hned na zaciatku v setupe zapnes senzor a takztiez si do sensor_run poznacis, ze si ho zapol.
Ak senzor zahlasi chybu (alebo aj nemusi) a ty stlacis tlacitko, vypne senzor, poznaci si do sensor_run=false, taktiez si poznaci aktualny cas do premnnej button_press_time a tym opusti if(digitalRead(2) == HIGH) zatvorky.
Hned potom, kedze si dal do senzor_run = false, program zacne neustale skakat do if(senzor_run == false) casti, a teda zacne kontrolovat rozdiel medzi akt. casom a casom ktory si si poznacil. Ak je viac nez 600000ms tak opat zapne senzor a taktiez si poznaci sensor_run = true (senzor beziaci).
Potom uz do if(senzor_run == false) program skakat nebude, teda kym znova nestlacis tlacitko.
Pozn: Funkciu zapni_senzor() a vypni_senzor() si musis spravit, alebo ju uz mas spravenu.
Pozn: Neskusal som to, ale pride mi to ciste riesenie.
Kód: Vybrať všetko
unsigned long button_press_time;
bool sensor_run;
setup() {
zapni_senzor();
sensor_run = true; //nastav flag na senzor zapnuty
}
void loop() {
if(digitalRead(2) == HIGH) { // ak je tlacitko ON (LOW/HIGH zmen podla zapojenia tlacitka)
noTone(buzzer);
vypni_senzor();
sensor_run = false; //zmen flag na senzor vypnuty
button_press_time = millis(); //zapamataj si cas zatlacenia tlacitka
}
if(senzor_run == false) { //kontroluj cas (10min interval) len ak je senzor vypnuty
if( (millis() - button_press_time) > 600000) { //ak ubehlo 10min zapni znovu senzor
zapni_senzor();
sensor_run = true; //nastav flag na senzor zapnuty
}
}
}
0
"No pain, no gain." (KC238)
-
- Ultimate člen
- Príspevky: 6368
- Dátum registrácie: 20 Júl 2007, 00:00
- Vek: 41
Re: Program pre Arduino
Kód: Vybrať všetko
unsigned long button_press_time=0;
void loop() {
// tu si mozes dat veci, ktore musia fungovat stale
if (button_press_time<=millis() {
continue;
}
// ak je cas mensi ako v premenbej, tak konci a nic za tymto sa nevykona
if(digitalRead(2) == LOW) {
noTone(buzzer);
button_press_time=millis()+pocet_sekund;
} // toto mozes dat aj vyssie a kazdym stlacenim predlzis interval o pocet sekund
// a tu si uz das svoj kod, ktory sa vykona az po tom urcenom case
0
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.
Re: Program pre Arduino
Zdar chalani vedel by mi niekto poradit ako dostanem program do aplikacie blynk? skúšam všetko a furt nejde. Ide o obyčajnú led zpnutím virtuálneho tlačidla.
#include <OneWire.h>
#include <BlynkSimpleEsp8266.h>
#include <dummy.h>
#define ONE_WIRE_BUS 2
#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPLTli-yrNP"
#define BLYNK_DEVICE_NAME "Ledka"
#define BLYNK_AUTH_TOKEN "GnZFgbsHDS-x1tuARO8birwyzpCmwzHl"
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "GnZFgbsHDS-x1tuARO8birwyzpCmwzHl";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "AP 2.4 G";
char pass[] = "A123B1234C";
void setup()
{
// Debug console
Serial.begin(9600);
pinMode(2, OUTPUT);
Blynk.begin(auth, ssid, pass);
}
void loop()
{
Blynk.run();
}
// This function will be called every time button Widget
// in Blynk app writes values to the Virtual Pin V3
BLYNK_WRITE(V5) {
int pinValue = param.asInt(); // Assigning incoming value from pin V3 to a variable
if (pinValue == 1) {
digitalWrite(2, HIGH); // Turn LED on.
} else {
digitalWrite(2, LOW); // Turn LED off.
}
}
a vipisuje mi toto
add if0
scandone
state: 0 -> 2 (b0)
state: 2 -> 3 (0)
state: 3 -> 5 (10)
add 0
aid 2
cnt
connected with AP 2.4 G, channel 11
dhcp client start...
ip:192.168.100.72,mask:255.255.255.0,gw:192.168.100.1
pm open,type:2 0
#include <OneWire.h>
#include <BlynkSimpleEsp8266.h>
#include <dummy.h>
#define ONE_WIRE_BUS 2
#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPLTli-yrNP"
#define BLYNK_DEVICE_NAME "Ledka"
#define BLYNK_AUTH_TOKEN "GnZFgbsHDS-x1tuARO8birwyzpCmwzHl"
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "GnZFgbsHDS-x1tuARO8birwyzpCmwzHl";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "AP 2.4 G";
char pass[] = "A123B1234C";
void setup()
{
// Debug console
Serial.begin(9600);
pinMode(2, OUTPUT);
Blynk.begin(auth, ssid, pass);
}
void loop()
{
Blynk.run();
}
// This function will be called every time button Widget
// in Blynk app writes values to the Virtual Pin V3
BLYNK_WRITE(V5) {
int pinValue = param.asInt(); // Assigning incoming value from pin V3 to a variable
if (pinValue == 1) {
digitalWrite(2, HIGH); // Turn LED on.
} else {
digitalWrite(2, LOW); // Turn LED off.
}
}
a vipisuje mi toto
add if0
scandone
state: 0 -> 2 (b0)
state: 2 -> 3 (0)
state: 3 -> 5 (10)
add 0
aid 2
cnt
connected with AP 2.4 G, channel 11
dhcp client start...
ip:192.168.100.72,mask:255.255.255.0,gw:192.168.100.1
pm open,type:2 0
0
Re: Program pre Arduino
1. vůbec by nebylo od věci kód vložit takhle :
2. Ideálně nepsat kód jako prase a používat odsazení :
Podle výpisu
A teď důležité otázky :
Kód: Vybrať všetko
#include <OneWire.h>
#include <BlynkSimpleEsp8266.h>
#include <dummy.h>
#define ONE_WIRE_BUS 2
#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPLTli-yrNP"
#define BLYNK_DEVICE_NAME "Ledka"
#define BLYNK_AUTH_TOKEN "GnZFgbsHDS-x1tuARO8birwyzpCmwzHl"
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "GnZFgbsHDS-x1tuARO8birwyzpCmwzHl";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "AP 2.4 G";
char pass[] = "A123B1234C";
void setup()
{
// Debug console
Serial.begin(9600);
pinMode(2, OUTPUT);
Blynk.begin(auth, ssid, pass);
}
void loop()
{
Blynk.run();
}
// This function will be called every time button Widget
// in Blynk app writes values to the Virtual Pin V3
BLYNK_WRITE(V5) {
int pinValue = param.asInt(); // Assigning incoming value from pin V3 to a variable
if (pinValue == 1) {
digitalWrite(2, HIGH); // Turn LED on.
} else {
digitalWrite(2, LOW); // Turn LED off.
}
}
Kód: Vybrať všetko
#include <OneWire.h>
#include <BlynkSimpleEsp8266.h>
#include <dummy.h>
#define ONE_WIRE_BUS 2
#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPLTli-yrNP"
#define BLYNK_DEVICE_NAME "Ledka"
#define BLYNK_AUTH_TOKEN "GnZFgbsHDS-x1tuARO8birwyzpCmwzHl"
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "GnZFgbsHDS-x1tuARO8birwyzpCmwzHl";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "AP 2.4 G";
char pass[] = "A123B1234C";
void setup()
{
// Debug console
Serial.begin(9600);
pinMode(2, OUTPUT);
Blynk.begin(auth, ssid, pass);
}
void loop()
{
Blynk.run();
}
// This function will be called every time button Widget
// in Blynk app writes values to the Virtual Pin V3
BLYNK_WRITE(V5)
{
int pinValue = param.asInt(); // Assigning incoming value from pin V3 to a variable
if (pinValue == 1)
{
digitalWrite(2, HIGH); // Turn LED on.
}
else
{
digitalWrite(2, LOW); // Turn LED off.
}
}
se program zapsal a funguje, protože konzole vypisuje, co má a BLYNK se k SSID připojil.McSmekac napísal: add if0
scandone
state: 0 -> 2 (b0)
state: 2 -> 3 (0)
state: 3 -> 5 (10)
add 0
aid 2
cnt
connected with AP 2.4 G, channel 11
dhcp client start...
ip:192.168.100.72,mask:255.255.255.0,gw:192.168.100.1
pm open,type:2 0
A teď důležité otázky :
- kde se volá BLYNK_WRITE(V5) ?
- Blynk neznám, ale nemáš náhodou renonc ve V3, V5 ?
1
1
Re: Program pre Arduino
Ahoj blynk je platforma cez ktoru si dokážem zariadenie ako wemos d1 s čipom esp8266 napríklad merať teplotu cez telefón. https://blynk.io/
Ide o to že mám od kolegu aj iný program (meranie teploty) ktorý je na 100% overený a u neho funguje ale mne vipisuje to isté. V aplikácií blynk mi stále ukazuje offline.
Ešte to musím vyskúšať doma lebo neviem či v práci nemáme nejaký firewall na takéto zariadenia.
Ide o to že mám od kolegu aj iný program (meranie teploty) ktorý je na 100% overený a u neho funguje ale mne vipisuje to isté. V aplikácií blynk mi stále ukazuje offline.
Ešte to musím vyskúšať doma lebo neviem či v práci nemáme nejaký firewall na takéto zariadenia.
0
-
- Podobné témy
- Odpovedí
- Zobrazení
- Posledný príspevok
-
- 20 Odpovedí
- 3300 Zobrazení
-
Posledný príspevok od používateľa jankrizan
-
- 24 Odpovedí
- 1220 Zobrazení
-
Posledný príspevok od používateľa misocko
-
- 10 Odpovedí
- 2323 Zobrazení
-
Posledný príspevok od používateľa budvar10
-
- 13 Odpovedí
- 949 Zobrazení
-
Posledný príspevok od používateľa kapor
-
- 6 Odpovedí
- 2004 Zobrazení
-
Posledný príspevok od používateľa pocitujlasku