Hirdetés

2024. május 5., vasárnap

Gyorskeresés

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2023-03-11 00:46:52

LOGOUT.hu

Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.

Összefoglaló kinyitása ▼

Hozzászólások

(#7051) Tankblock válasza A214 (#7050) üzenetére


Tankblock
aktív tag

Hello,

float utcOffset = -4; ez mire van állítva? ha 1 akkor jónak illene lennie.

Release the Beast....

(#7052) A214 válasza Tankblock (#7051) üzenetére


A214
aktív tag

Ö, igen ez 2 re volt àllitva most àtraktam 1 re.
Igy aktuàlis az idő.
Na de ezt ne keljen minden óra àtàllàsnàl babràlnom.
Megoldható ez vhogy?

(Eddig 2 volt igy gondolom a nyári idő szerint ment.)

[ Szerkesztve ]

(#7053) Tankblock válasza A214 (#7052) üzenetére


Tankblock
aktív tag

Hello,

Akkor megosztom hát mindenkivel, de felelősséget nem vállalok. Ez egy futó projectem

[link]

Ez ugrott amikor kell. minden nap hajnali 3:01 kor sync, de sajna megcsinálja vagy 15x 1 perc alatt. ezen van még mit csinálni.
Animációk is kezdetlegesek.....

Release the Beast....

(#7054) Aryes válasza Tankblock (#7053) üzenetére


Aryes
nagyúr

Akkor tavasszal egy óra hosszáig rossz időt mutat, mert akkor 2-ről kell 3-ra ugrani. :DDD

(#7055) Tankblock válasza Aryes (#7054) üzenetére


Tankblock
aktív tag

Hello,

Tudom, de nekem nem számít, hajnali 3 és 4 között én alszom.... :DDD, Ha nem akkor van rajta sync gomb.
Másik, hogy nem az az egy feature van a kódban, most itt tartok vele. Ez kód fut már több mint 4 hónapja az éles hardveren.

[ Szerkesztve ]

Release the Beast....

(#7056) A214 válasza Tankblock (#7053) üzenetére


A214
aktív tag

Szia,

Ez használható ha Wemos egy MAX7219 Dot Matrix Module 4 In One Display hajt meg?

(#7057) Tankblock válasza A214 (#7056) üzenetére


Tankblock
aktív tag

Hello,

Egy az egyben természetesen nem. A tervezési minta, az volt, hogy az órának nem kellene egész nap Wifi-t használni, inkább RTC kellene frissíteni alkalmanként. A másik az az állapotgépekkel működik, és ha jól emlékszen delay az szinte sehol sincs benne. Ez azért volt fontos, hogy ha lehet ne lehessen észrevenni azt hogy akadozik a másodperc mutató.

Ha kiveszed belőle WS2812b alias NeoPixel kódját és hozzáírod a "MAX7219 Dot Matrix Module 4 In One Display" kódját akkor igen,

Ha jól emlékszem MIT licences. Használd egészséggel.

[ Szerkesztve ]

Release the Beast....

(#7058) A214 válasza Tankblock (#7057) üzenetére


A214
aktív tag

Megpróbálom , köszönöm. :R

[ Szerkesztve ]

(#7059) H3inike


H3inike
csendes tag

Sziasztok!

Egy kezdő kérdésem lenne:
Van egy 3V-os, kb 1W teljesítményű micro szivattyúm, amit egy arduino mini pro-val akarok vezérelni. Lehetőleg minél helytakarékosabb megoldás kellene. Használjak mindenképpen relét a vezérléshez, megoldható nélküle is biztonságosan?

köszi

(#7060) fpeter84 válasza H3inike (#7059) üzenetére


fpeter84
senior tag

I=P/U vagyis ~0.33A áramigénye van akkor a szivattyúnak. Relé helyett inkább egy N MOSFET-et javasolnék:

A fet mindenképpen legyen túlméretezve hogy ne legyen probléma a melegedése. TO92 tokozásban akár több amper terhelhetőségűt is kapsz és azt még rá tudod építeni levegőben a mini pro-ra... Azért tapizással ellenőrizd majd a melegedését és ha erősen melegszik akkor egy lemez hűtőfület érdemes lehet ráapplikálni...

(#7061) H3inike válasza fpeter84 (#7060) üzenetére


H3inike
csendes tag

Köszi, megpróbálom

(#7062) bajaki válasza bajaki (#7044) üzenetére


bajaki
őstag

Időközben arra juttottam, hogy fut powerbankról is a kód, DE resetelni kell egyszer az Arduino-t a fizikai reset gombbal miután az áramforráshoz kötöttem. PC-n ugye ez azért nem jött elő, mert a Serial Monitor megnyitásakor resetel is egyet.

De gondolom ez nem normális működés. Power-on resetnek is működnie kellene, nem?

Hol keressem vajon a hibát? Valamilyen memóriával kapcsolatos probléma lenne?

Tudok esetleg kódból resetelni (egyszer) miután az áramforrás csatlakoztatva lett?

[ Szerkesztve ]

(#7063) Aryes válasza bajaki (#7062) üzenetére


Aryes
nagyúr

Esetleg ha késlelteted a softwareserial indítását a gps modul resetelése után?

(#7064) Tankblock


Tankblock
aktív tag

Hallo,

Valaki esetleg ESP32 programozik ESP-IDF el?

Lenne egy kérdésem,
ledc re interruptot hogy lehet hozzárakni?

ledc_fade_func_install(0);
ledc_isr_register(&ledc_isr_fnc, NULL, ESP_INTR_FLAG_IRAM , NULL);

setupban tovább

printf("1. LEDC fade up to duty = %d\n", LEDC_TEST_DUTY);
for (ch = 0; ch < LEDC_TEST_CH_NUM; ch++) {
ledc_set_fade_with_time(ledc_channel[ch].speed_mode,
ledc_channel[ch].channel, LEDC_TEST_DUTY, LEDC_TEST_FADE_TIME);
ledc_fade_start(ledc_channel[ch].speed_mode,
ledc_channel[ch].channel, LEDC_FADE_NO_WAIT);
}
vTaskDelay()
után amikor az interrput jönne belehal...

ahol: --> itt ugye nem szabad printF használni, de ha másra cserélem akkor is megpusztul.

void IRAM_ATTR ledc_isr_fnc( void * arg) {
printf("OMG, it is works \n");
}

Release the Beast....

(#7065) gyapo11 válasza bajaki (#7062) üzenetére


gyapo11
őstag

Régen volt már szó resetről, ha jól emlékszem assembly kód volt betéve.

Ez az: link

Valaki próbálta már?

[ Szerkesztve ]

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#7066) Vladi


Vladi
nagyúr

Nos még dolgozom a projektemen.
Ott tartok, hogy a hardver kész, leteszteltem, működik. Beépítettem a végleges dobozába, még mindig működik. :C

Kóddal bajlódtam mostanában, mindjárt mutatom mire jutottam. A feladat ugye az, hogy ketyeg egy számláló, mondjuk 20 másodperre állítva. Ha letelik az idő, akkor csinál egy kapcoslást egy relén. 100 ms-bekapcs, majd ki.

De van 2 gomb, az egyik azonnal kapcsol, majd nullázza a számlálót és kezdi elölről.
A másik gomb amíg nyomva van, addig pausálja a folyamatot.

Kérdéseim:

- megszíktást használok külsőt a két gombra. Az jó -e ide? Mert más módon nem tudtam kitalálni a megoldást. :F
- a nyissz megszakításba kellene még egy számláló nullázás. Meg a delay helyett egy módszer. Mert úgy tudom megszakítás alatt nem használható. :F

const int piros = 3; //3-es pinbe dugva az azonnali vágó kapcsoló
volatile const int mikro = 2; //2-as pinbe van a hurka csináló gomb.é
volatile int alapled = 13;
volatile const int rele = 6; // a kapcsoló relé.
const long vido = 19890; // EZ A LENYEG! Ez a vágási idő ciklus. kb 51 az 1 mm-t jelent. millisecundum egyébként.
long previousMillis = 0;

void setup() {
pinMode(piros, INPUT); // a 10-es piros az bemenet lett
pinMode(mikro, INPUT); // a nyócas hurkázó is bemenet
pinMode(alapled, OUTPUT);
pinMode(rele, OUTPUT); // relé a 6-on kimenet
Serial.begin(9600);
attachInterrupt(0, fuggo, LOW);
attachInterrupt(1, nyissz, CHANGE);
}
void loop(){
unsigned long currentMillis = millis();
if(currentMillis - previousMillis >= vido) {
previousMillis = currentMillis;
}// ??? e meg itt valahogy nem jó, át kell írni az időzítést és be kell gyűni az utána jövő kódot a blokkba.
digitalWrite(rele, HIGH);
delay(100);
digitalWrite(rele, LOW);
Serial.println("Vágtam, kövi.");

}
void fuggo(){
while (digitalRead(mikro) == LOW)
digitalWrite(alapled, HIGH);
}
void nyissz(){
digitalWrite(rele, HIGH);
delayMicroseconds(100000);// e lehet nem is jó :(
digitalWrite(rele, LOW);
Serial.println("Vágtam, kövi.");
//??? itt még nullázni kellene
}

Nem félünk! Nem félünk! Itthon vagyunk e földön. Nem félünk! Nem félünk! Ez nem maradhat börtön!

(#7067) Teasüti


Teasüti
nagyúr

Szép estét!
ESP-IDF kapcsán van vmi bevezető a programozásba vhol? Vagy vmi közösség, ahol vannak "howto"-k?
Szeretnék belevágni a natív programozásába (mert megőszülök, mire az Arduino Core funkcionalitása teljes körű lesz), de azon kapom magam, hogy igazából sehol nem írnak arról hogy kell programozni.
Vannak példaprogramok, meg van API referencia és hardveres referencia is. De nem találtam még kezdőknek szóló tutorialt. A legtöbb írás addig terjed, hogy hogy kell felrakni a fejlesztőkörnyezetet és hogy kell feltölteni a Hello World példaprogramot. De azt nem, hogy hogyan írjak programot.
Erre vmi útmutató?
Köszönöm!

[ Szerkesztve ]

(#7068) Tankblock válasza Teasüti (#7067) üzenetére


Tankblock
aktív tag

Hello,

Ez engem is érdekelne, amúgy se szeretném használi tovább az arduinot, és egy kicsit programozni.

Eddig csak annyit tudok amit a demokban leírtak, vagy amit a pcbreflux csatornáján lehet tanulni a youtubon.
Érzésre esp-idf is erősen fejlesztés alatt van. a esp32 forumja iszonyat lassú. A frissen regisztrálóknak a moderátor nézi és engedélyezi a hozzászólását.

Referencia alapján kezdtem a küzdelmet.

Release the Beast....

(#7069) Teasüti válasza Tankblock (#7068) üzenetére


Teasüti
nagyúr

Érzésre esp-idf is erősen fejlesztés alatt van.
Hát mit ne mondjak, nekem eddig egy hatalmas csalódás.
Nem igaz, hogy 2017-ben az appok világában nem tudnak felhúzni egy normális frontend-et.
Neeem, e helyett csomagolj ki 20000 apró fájlt, meg parancssorból telepíts a Github repojából.
És most felraktam vmi 2 giga hangyaf.sznyi fájlocskát és még egy szövegszerkesztőt is külön rakjak fel magamnak mert azt nem tartalmaz. :W
Azt hittem elsőre ez vmi vicc, de sajnos teljesen komoly.
Pont ezek miatt nem használok Linux-ot se. :U

[ Szerkesztve ]

(#7070) Teasüti válasza Janos250 (#6949) üzenetére


Teasüti
nagyúr

Tévedsz. :D
Atmel324p-vel én 300 db ws2812b ledet vezéreltem mindenféle gond nélkül.
A bonyolultabb effekteknél - mint mondjuk két eltérő effekt számolása + áttűnés a kettő között - az fps bezuhant kicsit, de így is értékelhető eredményt adott. Az egyszerűbb effekteknél, ahol nem kell sokat számolni, ott sok száz fps is elérhető volt. Maga a szalag frissítési ideje az nem akkora időszelet, hogy te szemmel bármilyen formában észrevedd, főleg magasabb fps-nél. Ekkor ugye nincs interrupt, szóval az idő számolása megáll arra a pár ms-ra, de nem vettem észre microstuttering-et az animációban. Pedig jó szemem van a kadenciahelyességhez.
Az meg hogy fizikailag több láncon vannak sorba fűzve a ledek, nem változtat semmit. A ledek számától függ az animáció sebessége, nem attól, hogy hány portra vannak szétszórva. Szép sorban végigmész a portokon a frissítés során. Egy kimenet helyett több kimenet van. Ennyi.
Több példányt kell csinálni abból az objektumból, amivel a led szalagot definiálod.

(#7071) Teasüti válasza Vladi (#6951) üzenetére


Teasüti
nagyúr

Aztaqrva!!4! :Y
Ennyit a 3D-s mérőóráról...

(#7072) JozsBiker válasza Tankblock (#7057) üzenetére


JozsBiker
aktív tag

Nem volna célravezetőbb DCF77 modult használni ? Nem kellene wifi kapcsolat, sem RTC, automatikusan menne az időszámítás átállás, stb. Én is az épülőfélben levő órám pontosan tartásán agyalgok, és elvben arra jutottam, hogy a dcf jó megoldás lehet. Nem tudom mennyire problémás a rádióhullámok vétele, de a társasház alagsorában levő betonfalú műhelyem mélyén egy dcf -es óra vígan működik. Így gondolom e 6 centis ferrit antennás modul számára sincs akadály:

[77.5kHz DCF77]

[ Szerkesztve ]

(#7073) Janos250 válasza Teasüti (#7070) üzenetére


Janos250
őstag

Lehet :)
Már nagyon régóta nem használok Atmel324-et.

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#7074) Tankblock válasza JozsBiker (#7072) üzenetére


Tankblock
aktív tag

Hello,

Meglehet, hogy igazad van. ESP8266 köré terveztem a projectet, ha már volt itthon. és RTC is.
Wifi-t szerettem volna mert NTP vel egyszerű a sync, és ha lesz időm akkor webservert vagy akár még MQTT vel is lehet pl riasztást beállítani. A HW ben a GPIO2 n van egy 100 Ohm ellenállás után egy buzzer is. Na az a része a softwarenek sincs még kész.
Amit élveztem eddig ebben a projectben :
- az a nyák tervezés -> előtte 0 tapasztalatom volt Eaglel és nyáktervezőt sem láttam középsuli óta.
- balzafa doboz készítés -> előtte 0 tapasztalatom volt ilyenel
- működik érzés. mégha tudom hogy félkész is.

A project szigorúan itthonra készült, belegondolva, hogy mennyi időt tettem bele, és a 60 Neopixel kör sem olyan olcsó. Ez nekem csak hobby, így nem feltétlen a mindenek feletti ésszerű tervezés és kivitelezés a cél.
Ha kész lesz akkor nagyszerű karácsonyi ajándék lehet pl szülőknek egy második darab ahol az elvétett hibákat már nem követem el újra.

Release the Beast....

(#7075) weiss válasza JozsBiker (#7072) üzenetére


weiss
addikt

Én pár hónapja szórakoztam egy Conrados DCF vevővel, és az ország nyugati részében a szoba északnyugati tájolásával is voltak vételi problémák, nem biztos hogy erre építenék.

I did nothing, the pavement was his enemy!

(#7076) Tankblock válasza Teasüti (#7069) üzenetére


Tankblock
aktív tag

Hello,

Én élvezem, hogy végre eclipse alatt tudok fordítani, és nem az Arduino IDE-be vagyok korlátozva. C nyelvet sem mostanság használtam, és van lehetőség C++ is.

Nem vagyunk egyformák, nekem a Win10 egy csalódás, és kacsingatok az új Ubuntu 17.10 után.

A dokumentáció hiányosságai okoznak fejfájást. Nem minden működik a leírtak szerint az ESP-IDF ben. Van még rajta mit csiszolni.

Az interrupt kezelést kellene megtanulnom, pont ez az ami idegesít, mert a leírtakból pont nem lehet megcsinálni amit szerettem volna --> ledc fade végén interruptban visszafele fadelni szeretném A technikai sheet szerint az összes channel tud a végén interruptot. A HW képességei lenyűgözőek. A tudásom meg igen kevés.

Feltűnö h az Arduino ideben írt villogtatás 65% lassabb --> túl nagy az overhead.

ESP-IDF ben ezek mennek eddig :
RTOS Task kezelés, Queue, Semaphore/Mutex - > binary semaphoret értem , de nem használtam
i2c scannert sikerül már írnom.
Led villogtatás is megy.
MQTT-re üzenet küldés. igaz ez kész library-t használva.
Most küzdök a ledc -vel.

Lehet kellene egy ESP32 ESP-IDF topic, hogy ezt ne offoljuk szét.

Release the Beast....

(#7077) Janos250 válasza Tankblock (#7064) üzenetére


Janos250
őstag

Nem próbáltam még, de Kolban? Ott elég sok minden le van írva ilyesmiről.

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#7078) Teasüti válasza Tankblock (#7076) üzenetére


Teasüti
nagyúr

Lehet kellene egy ESP32 ESP-IDF topic, hogy ezt ne offoljuk szét.
Az a maréknyi ember, aki ebben járatos mind ide jár. :D
Aki a legtöbbet ESP-zik, ő meg Arduino alatt programoz.
Aki meg más IDF-et használ, ő meg nem ESP-zik. Így hirtelen akik eszembe jutottak. :)
Esetleg lehetne egy Arduino komplementer topik. Aki Arduinózik az ne kapjon szívrohamot, ha betéved ide. Minden más platform meg mehetne külön.
Amúgy necces úgy topikot nyitni, hogy nem tudok hozzátenni semmit. :B

[ Szerkesztve ]

(#7079) Tankblock válasza Teasüti (#7078) üzenetére


Tankblock
aktív tag

Hello,

Vagy elmegy a kedve az egésztől, mert meglátja a bepastázott kódot.... :DDD
Amúgy a ESP32 fórumon min 2 nap mire kaptam egy választ ami nem válasz a kérdésemre.....
azaz nézd meg a példát, de erre pont nincs példa.

Release the Beast....

(#7080) Teasüti válasza Tankblock (#7079) üzenetére


Teasüti
nagyúr

Most nézem amúgy, hogy több verzió is elérhető az online doksikból.
A programozási útmutatót ha megnyitom, akkor a baloldali menü alján lehet verziót váltani. A korábbi verziókban több minden van. :K

(#7081) Tankblock válasza Teasüti (#7080) üzenetére


Tankblock
aktív tag

Igen, a kérdés, hogy miért került ki belőle... az nincs leírva.

eddig 2.0 már néztem, onnan tudom, h kell plusz IRAM_ATTR word a fordítónak a ISR fv be a ledc nek...

Release the Beast....

(#7082) Tankblock


Tankblock
aktív tag

ESP32-IDF hát ööö még bugos is, pl
ledc_set_fade_with_step fv ha a scale attribútummal oszt még akkor is ha az nulla... :W
eredmény győzelmi zászló....

Release the Beast....

(#7083) Vladi válasza Vladi (#7066) üzenetére


Vladi
nagyúr

Hurrá! Félig működik a kódom! :DD Oké egy kapcsos zárójelet rossz helyre tettem, de sikerül debugolni.

A nyissz részt még nem próbáltam. Oda egy megszakításon belüli időzítést a tavir tananyagban találtam:

for (long i=0;i<1250000;i++){
//Serial.print("6");
asm volatile ("nop"::);
}

:F

Már csak a számlálót kellene nullázni. Lécihelp! :O

Így fest a kód most:

const int piros = 3; //3-es pinbe dugva az azonnali vágó kapcsoló
volatile const int mikro = 2; //2-as pinbe van a hurka csináló gomb.é
volatile int alapled = 13;
volatile const int rele = 6; // a kapcsoló relé.
const long vido = 19890; // EZ A LENYEG! Ez a vágási idő ciklus. kb 51 az 1 mm-t jelent. millisecundum egyébként.
long previousMillis = 0;

void setup() {
pinMode(piros, INPUT); // a 10-es piros az bemenet lett
pinMode(mikro, INPUT); // a nyócas hurkázó is bemenet
pinMode(alapled, OUTPUT);
pinMode(rele, OUTPUT); // relé a 6-on kimenet
Serial.begin(9600);
attachInterrupt(0, fuggo, LOW);
attachInterrupt(1, nyissz, CHANGE);
}
void loop(){
unsigned long currentMillis = millis();
if(currentMillis - previousMillis >= vido) {
previousMillis = currentMillis;
// ??? e meg itt valahogy nem jó, át kell írni az időzítést és be kell gyűni az utána jövő kódot a blokkba.
digitalWrite(rele, HIGH);
delay(100);
digitalWrite(rele, LOW);
Serial.println("Vágtam, kövi.");
}
}
void fuggo(){
while (digitalRead(mikro) == LOW)
digitalWrite(alapled, HIGH);
}
void nyissz(){
digitalWrite(rele, HIGH);
for (long i=0;i<1000;i++){
Serial.print("6");
asm volatile ("nop"::);
}
digitalWrite(rele, LOW);
Serial.println("Vágtam, kövi.");
//??? itt még nullázni kellene
}

[ Szerkesztve ]

Nem félünk! Nem félünk! Itthon vagyunk e földön. Nem félünk! Nem félünk! Ez nem maradhat börtön!

(#7084) Tankblock válasza Vladi (#7083) üzenetére


Tankblock
aktív tag

Hello,

Szerintem koncepcionálisan van elbökve a kód.

interruptba nem illik/ szabad kiíratást rakni.
Az interrupt kódjának illik minimálisnak lennie ha lehetne késedelm delay nélkül.....

Ha az időt (previousMillis ha jól látom )kiteszed volatile unsigned longba, akkor millis fv segítségével aktualizálhatod.

Én a logikát a loopba raknám és a Interruptokba csak flageket állítanék és állapotgépeket pörgetnék a loopba, megfelelő feltételek melett, és a delay-t helyett for időkülönbséget néznék az állapogépben.....
De ez én vagyok, remélem más ad jobb tanácsokat.

[ Szerkesztve ]

Release the Beast....

(#7085) Vladi válasza Tankblock (#7084) üzenetére


Vladi
nagyúr

Nagyon köszi a tanácsot. :R Momentán durván 10 % értem annak, amit írsz. Örülök, hogy nagyjából ketyeg a kód.
Holnap okával átnézem.

Nem félünk! Nem félünk! Itthon vagyunk e földön. Nem félünk! Nem félünk! Ez nem maradhat börtön!

(#7086) Teasüti válasza Vladi (#7083) üzenetére


Teasüti
nagyúr

Unatkoztam, remélem nem haragszol meg érte ha esetleg ez volna a megoldás! :B
Nem igazán emlékszem a kapcsolási rajzodra, de a bemenetek alapból Vcc-re vannak húzva és GND-re kapcsolsz, ugye? Meg hardveres prell mentesítést használsz, ugye? Mielőtt interrupt özön keletkezik egy gombnyomásra. :D
Hosszú idő után ez az első programom, így lehetnek benne hibák. Pár dolgot ki kellett keresnem, mert nem emlékeztem rá.
Arra figyelj, hogy szünet után azonnal nyissz lesz, ha lejárt a ciklusidő!

#define vido 19890 // EZ A LENYEG! Ez a vágási idő ciklus. kb 51 az 1 mm-t jelent. millisecundum egyébként.
unsigned long currentMillis, previousMillis;
bool piros;

void nyissz() {
piros = true;
}

void setup() {
pinMode(3, INPUT); //piros
pinMode(2, INPUT); //mikro
pinMode(13, OUTPUT); //led
pinMode(6, OUTPUT); //relé
Serial.begin(9600);
attachInterrupt(digitalPinToInterrupt(2), nyissz, LOW);
}

void loop() {
currentMillis = millis();
if (currentMillis - previousMillis >= vido || piros) {
digitalWrite(6, HIGH);
delay(100);
digitalWrite(6, LOW);
Serial.println("Vágtam, kövi.");
previousMillis = currentMillis;
piros = false;
}
if (digitalRead(2) == LOW) {
while (digitalRead(2) == LOW);
}
}

[ Szerkesztve ]

(#7087) Tankblock válasza Vladi (#7085) üzenetére


Tankblock
aktív tag

Hello,

Rajzold le a folyamat ábrát, mit és mikor csinálsz, hogy jutsz egyik állapotból másik állapotba milyen feltételekkel. Mi van ha konkurál a 2 gomb..

Majd ezt szépen állapotgépben implementálható.

Mivel emberi felhasználásra lesz tennék bele mindent tiltó gombot is( Nagy piros gomb) :D :DDD

[ Szerkesztve ]

Release the Beast....

(#7088) Teasüti válasza Tankblock (#7087) üzenetére


Teasüti
nagyúr

Mármint vész stop. Nem lepődnék meg, ha emberünk jártas volna a gépek terén.
Hisz azzal dolgoznak és ő a boss ha jól emlékszem. Nem egy kisgyerekkel van dolgunk. :D

A felvetés jogos. Volt már arról szó hogy illeszkedik a gépbe az arduino? Honnan kapja a tápot, amit vezérel az honnan kapja, az arduino az egy kiegészítése a meglévő vezérlésnek vagy inkább helyettesítése? Lehet a gépen lévő vész stop megállítja az egész hóbelevancot. Mondjuk én a pillanatálljt kapcsolóra raknám, nem gombra. Így a mikrovezérlő végtelen ciklusban várakozik. Utána nulláznám a számlálót és az azonnali szeletelés gombbal lőném be a kezdési pontot. Vagy különben a szünet után azonnal vág, ami váratlan lehet és így veszélyes. Persze nem ismerjük a gépet, így ezt neki kell eldönteni. Vagy a megbízott munkavédelmisnek, stb...

[ Szerkesztve ]

(#7089) Teasüti válasza Teasüti (#7088) üzenetére


Teasüti
nagyúr

A gombok bolondbiztossá tételéhez meg: a fenti kódomban a várakozás után a piros gombhoz tartozó változónak hamis értéket kell adni valamint nullázni a számlálót. Így nem fog azonnal vágni, hisz mindkét feltételt hamisnak állítottuk be, tökmindegy mi történt míg szünetelt.
Fordított esetben meg a nyissz megtörténte után fog csak szünetelni, szóval az úgy korrekt.

Ui: mondjuk ezért nem használok gombhoz megszakítást... Van amikor nem akarunk tudomást venni egy gombnyomásról. Mint itt amíg szünetel a gép.

[ Szerkesztve ]

(#7090) Teasüti válasza Janos250 (#7077) üzenetére


Teasüti
nagyúr

Szia!
ESP32 WROOM 38pin vezérlőm megérkezett a minap. Most raktam fel Arduino alá az alaplapi meghajtókat.
Viszont lett egy rakás új menüpont az Eszközök menüben. Ezeket te hogy állítottad be? Jó az alapbeállítás? El tudom rontani (téglásítani)?
Köszönöm! :R

Illetve normális az ha melegszik a lap? Olyan 30-40 fokos lehet, pedig semmit nem csináltam még vele csak lóg az usb-n.

[ Szerkesztve ]

(#7091) Janos250 válasza Teasüti (#7090) üzenetére


Janos250
őstag

Téglásítani szerintem nem lehet.
Sebesség:
Nekem a 921600-on minden második harmadik feltöltés ki szokott akadni, ezért én
115200-on programozom, bár így tovább tart.
Nekem jelenleg a Node32S típus van beállítva, de használtam már Doit-ra állítva is.
Nem tapasztaltam lényegi különbséget. Ott nincs Flash Mode választási lehetőség.
Én a feltöltéseknél a "Q" (négyszeres) módot nem szoktam semmilyen lapnál használni, mindig csak a
"D" (dupla) módot használom, tulajdonképpen nem is tudom, melyik lapnál lehet, és melyiknél nem

Néhány megjegyzés Neked is, és azoknak, akik ezután kezdik használni:
Az első teendők egyike: azonosítani kell, hogy a mi panelunkon melyik láb melyik GPIO, mert a panelokon többféleképpen van feliratozva.
Az ESP32 chipnek 34 GPIO lába van: (0-19, 21-23, 25-27, 32-39), de az Espressif ESP-WROOM-32 tokozásban a GPIO6, GPIO7, GPIO8, GPIO9, GPIO10, GPIO11 ki van ugyan vezetve a 17-22 lábakra, de nem használható, mert az a memóriát kezeli.
A panelok ezeket a lábakat általában nem is vezetik tüskére.
Mivel az 1-es soros port alapból a GPIO9, GPIO10 –et használja, ezért ezeket át kell irányítani, ha az 1-es soros portot használni akarjuk.
Pl.:
#define Serial1_RXPIN 26
#define Serial1_TXPIN 27
pinMode(Serial1_RXPIN,INPUT_PULLUP);
Serial1.begin(115200, SERIAL_8N1, Serial1_RXPIN, Serial1_TXPIN) ;

A Serial2-t használat előtt példányosítani is kell , a Serial-t, Serial1-et nem, azok előre példányosítva vannak, mint pl. az UNO-nál a Serial.

Egy kis plusz infó:

esp32-hal-gpio.h:
//GPIO FUNCTIONS
#define INPUT 0x0100000001
#define OUTPUT 0x0200000010
#define PULLUP 0x0400000100
#define INPUT_PULLUP 0x0500000101
#define PULLDOWN 0x0800001000
#define INPUT_PULLDOWN 0x0900001001
#define OPEN_DRAIN 0x1000010000
#define OUTPUT_OPEN_DRAIN 0x1200010010
innen látható, melyik bit mit jelent

typedef enum {
WIFI_MODE_NULL = 0, /**< null mode */
WIFI_MODE_STA, /**< WiFi station mode */
WIFI_MODE_AP, /**< WiFi soft-AP mode */
WIFI_MODE_APSTA, /**< WiFi station + soft-AP mode */
WIFI_MODE_MAX
} wifi_mode_t;

Melegedést én nem néztem, de ma még megnézem.

[ Szerkesztve ]

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#7092) Teasüti válasza Janos250 (#6642) üzenetére


Teasüti
nagyúr

Köszönöm a segítséget! :R
Erre a válaszodra visszakanyarodva a ws2812 kapcsán:
az kézikönyvet olvasgatva nekem úgy tűnik az RMT és az Input Capture fejezetek ugyanarra a perifériára utalnak, vagyis ugyanazt a hardvert használja mindkét funkció?
Ugye van 8 csatornám, amit az infrán kívül be lehet fogni többek közt led vezérlésre is, viszont én szeretnék használni input capture-t is. Szerinted megoldható volna párhuzamosan a két különböző feladat?
Természetesen más-más csatornákon.

Más: a cpu sebességet nekem kéne állítani, vagy az hardveresen van belőve kristállyal? Nem tudom mi az a flash frequency, ami 80 Mhz-re van állítva, de említést tesznek, hogy a cpu is 80-240 Mhz között állítható.

[ Szerkesztve ]

(#7093) Janos250 válasza Teasüti (#7092) üzenetére


Janos250
őstag

"ugyanazt a hardvert használja mindkét funkció?"
Nem tudom, nálam a WiFis dolgokat végzik.

Én a flash frequencyt nem állítottam - gondolom - az a flash memória elérését szabályozza.
Én a CPU sebességét se állítottam, úgy tűnt, hogy 240-en megy.
Melegedés:
Nekem picit langyos.

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#7094) csubuka


csubuka
addikt

Sziasztok!

Esetleg ilyen-féle PWM-vezérelhető vagy legalábbis mikrokontrollerekkel könnyen házasítható dimmert nem tudtok olcsóbb forrásból? Láttam még rádiófrekvenciásan irányíthatót is.

Továbbra is a venti projekttel akarok valamit kezdeni :N Nem olyan egyszerű az. Ezek talán némi kompromisszummal jók lehetnek a venti AC motorjához is.

[ Szerkesztve ]

(#7095) Vladi


Vladi
nagyúr

Tankblock és Teasüti!

A rövid válaszom: köszi szépen, működik a kód! Azt csinálja amit akartam és hardver és kész állapotban van. :DD

A hosszan kifejtett válaszom:
Teasüti:

Nagyon tetszett az ötlet, hogy egy változót teszek a kódba, ezt egy vagy kapcsolással kötöm össze. Akárhány leírást átolvastam, ilyen nem jutott eszembe. Azt hiszem ehhez kell némi rutin, ami nekem nincs. :R

Az arduino mindkét irányba (kimenet és bemenet) opto izolálva lett. A bemeneten van egy saját készítésű opto izolátor kártya. Ezt egy kiváló, nagyszerű, elképesztő villamosmérnök ismerősöm tervezte nekem. :R De a kivitelezés az én érdemem. :))

A relé kártya is optoizolált. A kész hardverről egy kép: link. Itt látható az izolátor kártya. A gombokba egyébként 12 voltot kötöttem. Az ardu 5 voltját nem szívesen vezetném 15-20 méterre, ipari árammal ellátott helyiségben. :DDD
A hardveres debounce itt egy beiktatott kondenzátor. Ezt teszteltem nemrég, nagyon fasza stabil. :K
Egyébként felhúzó üzemmódban működik.

A kódodból kivettem a nekem kellő részt és a sajátomba tettem. Annyi, hogy a megszkításra LOW helyett FALLING kellett. Mert LOW-al a gombnyomás ideje alatt vagy tucatnyi vágást hajtott végre. :D

boss nem vagyok, az az Imre, én a drágafőni vagyok. :C
Hogy illeszkedik a képbe. Most is van időzítő. Egy fémtárcsa forog egy pöcökkel, ami megbillent egy kapcsolót.... :Y Ez minden, csak nem:
- pontos
- állítható.
Erről nem is mondok többet, mert a síráselfog. :O
De nem kell aggódnotok. Az új rendszer biztonságosabb is lesz mint a régi. Persze majd szépen felcicomázzuk kapcsolóval, meg vészgombbal meg ami kell. Majd ránéz tavasszal a villanyszerelőm, meg a munkaügyisnek úgyis megmutatom. Külsős. Úgyis csak azt nézi, hogy szigetelve legyen, meg legyen elég gomb. :DD

Tankblock
Folyamat egyszerű:
- fix időnként - ami állítható - kapcsolás.
- egyik gomb amíg nyomva van addig a folyamatot pausálja. Elenged akkor folytatja
- másik gomb azonnal kapcsol és nulláról kezdi a folyamatot.

A két gomb nem nagyon tud konkurálni, fizikailag is úgy néz ki, hogy vagy egyiket éri el az ember, vagy a másikat.

Nem félünk! Nem félünk! Itthon vagyunk e földön. Nem félünk! Nem félünk! Ez nem maradhat börtön!

(#7096) Victoryus


Victoryus
addikt
LOGOUT blog (1)

Megjöttek végre a jumper kábelek, így elkezdhetem a tesztelést. Azt honnan kéne tudnom, hogy az ultrahang szenzor a com porton milyen sávszélességgel kommunikál? Próbálgatom, és általában csak kérdőjeleket ír, kivéve a 115200baudot, ott rendben vannak az értékek. (annyi a példa, hogy com porton írja ki milyen távolságra van tőle akadály +/-170 fokos tartományban)

[ Szerkesztve ]

Eladó Lego: 42139 All terrain vehicle

(#7097) Tankblock válasza Victoryus (#7096) üzenetére


Tankblock
aktív tag

Hello,

Milyen ultrahang szenzorról van szó?

Release the Beast....

(#7098) vargalex válasza Victoryus (#7096) üzenetére


vargalex
félisten

Ha a korábban általad linkelt készletben lévő szenzorról van szó (amiről itt is raktál képeket), akkor az nem beszélget soros porton, hanem az Arduino beszél veled. A távolságot is a kód számolja az echo pin magas állapotának hosszából. A soros monitoron beállítandó baud rate pedig a lap által támogatott baud rate-októl, illetve ezek közül a Serial.begin paramétereként megadott baud rate-tól függ.

[ Szerkesztve ]

Alex

(#7099) Victoryus válasza vargalex (#7098) üzenetére


Victoryus
addikt
LOGOUT blog (1)

Köszönöm! Igen, arról van szó. Minden működik amit rendeltem, csak még egyben nem :) Most a TM1638-as panellel játszottam el az időt, de csak összejött a "kitt" effekt. Kicsit primitív lett a kód, mert minden lépést kiírtam. Ezt minden leddel oda-vissza:
module.setLED(TM1638_COLOR_RED, 1);
delay(100);
module.setLED(TM1638_COLOR_GREEN, 1
);
Itt például lehetne változót is használni az 1 helyett? Akkor for ciklussal egyszerűbb lenne... Illetve azt nem tudom, hogy kell kikapcsolni a ledeket, de ez a színváltás is jó erre a célra, mivel csak pirosat tudnak. A szöveg kiíratással is el lehet tölteni az időt, bár a 7 szegmenses kijelző miatt néhány betű hiányos.

Eladó Lego: 42139 All terrain vehicle

(#7100) gyapo11 válasza csubuka (#7094) üzenetére


gyapo11
őstag

Kész modult nem tudok, építeni lehet a MOC3041 nullátmenet kapcsolós és valamelyik másik MOC a nem nullátmenetessel, kell még egy triak, és befelé egy optocsatoló a nullátmenet érzékeléséhez, ha a nem nullátmenetessel akarod vezérelni a triakot. Ventilátorhoz valószínűleg jobb a nem nullátmenetes vezérlés.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

Copyright © 2000-2024 PROHARDVER Informatikai Kft.