-
GAMEPOD.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.
Új hozzászólás Aktív témák
-
Attix70
aktív tag
Igen, LM358, R1 nem kell (10K), valamint az R3-VR1 közös ponttól az IC 2-es lába közé kell egy 1uF (nem polaritásos) kondi. Eztán már az általad felvázolt pontok közé kell berakni egy potit majd ha a beállított erősítés megfelelő akkor helyette egy fix ellenállást majd a D0 után egy kicsatoló kondit.
Próbáljuk meg a mondatokat NAGYbetűvel kezdeni
-
ZTE_luky
aktív tag
Sziasztok! Előre is, de ne haragudjatok hogy úgy írok hogy még nem próbáltam ki amit javasoltatok, de sajnos visszajöttem koliba, és se ellenállás, se forrasztó vagy fölös vezeték
Viszont.. AMire jutottam a mikrofonnal kapcsolatban, igazatok volt, analógon semmi az ég világon nem jön át, viszont a dig outot a0-ra kötve máris csoda, mégegyszer kihangsúlyozom se ellenállás, se átkötés semmi.
viszont a probléma hogy a jeltartomány nem az igazi. igazság szerint ha a hangszóró amiből jö na zene 1 centi távolságban van a mikrofontól ráfoghatjuk hogy működik, de amint egy centinél messzebb kerül szintén semmi.
természetesen amint lesz rá lehetőségem kipróbálo mamiket javasoltatok, de szinte biztos vagyok benne hogy amihez nekem kell ahhoz valami vezetékes kompatibilítást kell kitalálnom, esetleg valaki tud 3,5 jack kábeles modult arduino nanohoz ami a zene hangerejére növeli a jelet?
-
ZTE_luky
aktív tag
válasz ZTE_luky #8504 üzenetére
bocs, már nem tudtam szerkeszteni, más kérdés:
teljesen mindegy hogyha minden egybe van kötve (szalag, arduino nano, mikrofon) hogy az egész rendszer az arduino betápján kap áramot, vagy a mini usb porton? egy fa szerkezetbe vésném bele, kevesebb munka is lenne vele, meg szebb is lenne ha csak a mini port "jönne ki" a fából (az meg az animáció feltöltés miatt úgy is kell)
-
Teasüti
nagyúr
Tudtok ajánlani olyan 16 portos I2C I/O expander chip-et, amin a portok egy az egyben úgy működnek, mint egy tisztességes mikrokontrollerben? Gondolok itt push-pull kialakításra legalább 20 mA terhelhetőséggel current-source módban, esetleg kapcsolható fel-, lehúzó ellenállással.
PCF8575-tel terveztem idáig egy projektet amit az Arduino Playground ajánlott, de alaposabban tanulmányozva a chip-et úgy néz ki kuka lesz a dizájn az open-drain portok miatt. Megnöveli a szükséges alkatrészek és a csatlakozók számát a buta kialakítás.
Akkor már egyszerűbb keresni másik chip-et, mint átszabni az egész NYÁK tervet.Köszönöm!
[ Szerkesztve ]
-
gyapo11
őstag
válasz ZTE_luky #8504 üzenetére
Ezen a modulon erősítést már nem tudsz növelni, mert maxon erősít. De ha lehetne is, akkor is egy távolságra lenne jó, mert a hang ereje a távolság négyzetével arányosan nő vagy csökken. Vagyis valóban jobban jársz egy vezetékes csatlakozással.
Pl. ez a modul sztereo fejhallgató erősítő, trimmerrel beállítod a kimenő szintet, és a mikrofon helyére kondival becsatolod. Akár a két csatornára két ledszalaggal, ha bírja a feldogozást az arduino.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
-
-
Teasüti
nagyúr
Neeem, ez az IC maga lesz kihelyezve az uC-től vagy egy-másfél méterre (két másik I2C eszköz társaságában).
Szimplán csak azon okból, mert kellenek a plusz portok.
Hogy az 5V-os busz hogy fogja bírni a távolságot - ami miatt nem aggódok egyáltalán -, azt majd szkóppal ellenőrzöm.
Egy 5 méteres 300 ledes szalagon esik a fesz 1V-ot kb ha jól emlékszem. És ott azért nem kicsi áramok mennek. Az I2C buszon meg uA-mA tartományban vagyunk, nem számítok feszültségesésre. Kalkulátor szerint 2 méteren 5V 10mA 0,02%-ot esik. Szerintem kár aggódni. A busz kapacitása lesz inkább érdekes.
18 AWG becsléseim szerint 30-40 pF lesz a kellő hosszúságon.
Mindkét végén lesznek felhúzók és szintillesztők, abban bízom majd azokkal szépen be lehet hangolni a jelet.
De ha nagyon sokat esne, akkor még mindig megemelhetem a busz feszültségét is akár 12V-ra is. A mosfet-ek 20V-ig bírják elvileg (ha nagyon perverz akarok lenni, akár ráakaszthatnám a jármű elektromos hálózatára közvetlenül is a felhúzókat. Szerintem).[ Szerkesztve ]
-
gyapo11
őstag
Ezzel az a gond, hogy szerintem inkább csak a magas hangokat lehet vele detektálni, másrészt el kellene választani a két oldalát egymástól nyomás szempontból. Így a hangnyomás mindkét felét éri, és nem lesz deformáció.
Másrészt ha mindez megvan, akkor is mikrofon, tehát nagyon érzékeny lesz a hangforrás erejére és a távolságra, esetleg még az irányra is, mint egy mikrofon. A videón meg azt láttuk, hogy a kijelzés hangerőfüggő.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
-
nagyúr
válasz gyapo11 #8516 üzenetére
A jack bemenetes megoldásnak viszont pont a kábel a hátulütője. Ha közel teszi a hangforráshoz, akkor rövid kábel kell, de akkor meg éppen, hogy a mikrofon is megtenné bemenetnek. Én ha ilyet csinálnék, biztos, hogy addig mesterkednék, míg nem tudnám mikrofonnal megoldani. A kábel a lehetőségeket is behatárolja, pl más hangforráshoz (pl. tv) mindig át kellene dugni.
-
Teasüti
nagyúr
Nagyon egyszerű. Túl sok a periféria. A 16 bites expanderen is be van kötve 15 port a motor kezelőszerveinek beolvasásához, két ledes nyomógombhoz, meg egy dupla usb töltő vezérléséhez.
Ehhez hozzájön még I2C buszon egy numerikus led kijelző és egy UV/IR/Light szenzor.[ Szerkesztve ]
-
Teasüti
nagyúr
válasz Tankblock #8519 üzenetére
Motor projekt. Dekor világításnak indult, de aztán kicsit felokosítom a gépet mindenféle vezérlésével. Pl saját tervezésű 5630 ledekből épített pwm vezérelt féklámpa 2000 lumenes fényerővel.
6 külön csatornán mennek a szalagok, és csak azért nem 8 mert ha jól értem az ESP32-t, akkor az RMT csatornákon zajlik a hardveres pulse counter is, amiből kell kettő a fordulatszám és sebesség jeladókhoz.
És miért van szétdobálva 6 csatornára? A fizikai kialakítás miatt. 4 különböző helyen vannak elhelyezve szalagok, ezen kívül az irányjelzők is ws2812b alapú RGB ledek lesznek. Hátul egy-egy 8 ledes stick, nyomtatott burkolattal. Elől meg még vizsgálom a lehetőségét vagy egy 120 led/m szalag elhelyezésének a fényszórókban, vagy egyedi formájú panel készítése 5050 RGB chip-ekkel.Persze megoldható lenne az egész hóbelebanc felfűzése egy láncba, de az nem volna praktikus. Na meg ws2812b lévén nem árt ha nem az egész lánc döglik meg egy pixelhibánál.
[ Szerkesztve ]
-
Tankblock
aktív tag
válasz Teasüti #8520 üzenetére
Aha,
W2813 a W2812 helyett?? [link]
Én még mindig felfűzném 2v4 pl index kört egybe. Praktikusabbnak tűnik a kód is lehet egyszerűbb is. PL vészvillogó megoldása 1 állapotgéppel.....
remélem gondoltál a biztonságra is, HW & SW watchdog mindenképpen legyen, én ugyanazt a kódot is futtatnáma 2 külön magon és nézném h ugyanazt számolják-e......
Mire kell a RF (Wifi, BT) része?a másik vége h ez nem legális.....
Release the Beast....
-
Teasüti
nagyúr
válasz Tankblock #8523 üzenetére
Az irányjelzők oldalanként össze lesznek fűzve, az nem nagy távolság. Előre/hátra nyilván külön ágakat húzok ki. Jó, hogy nem 20 méter vezetéket rakok fel a motorra, hogy mindent láncba fűzzek!
Ezért van ennyi GPIO, hogy használjuk őket.
A kódot nem bonyolítja nagyon. Most lesz 6 külön példány a szalagból, a számolása meg ugyanaz csak más változókba pufferelek.
Igen, erre fel lesz készítve a rendszer úgy mint a féklámpa esetében: van saját 555 vezérlés a panelen és átkapcsolható külső pwm vezérlésre. A prototípust még relé kapcsolja, de a végleges változaton már hardveres watchdog kapcsol át, amit a külső pwm jel etet.
Az indexek meg redundánsak lesznek, az RGB mellett lesz normál borostyán színű analóg led is, ami szintén átkapcsolható bármikor.
Az hogy nem legális... Nincs benne E betű, de ilyen huncutságokkal itt műszakin nem foglalkoznak amíg megfelelően látja el a feladatát - természetesen a teszt idejére minden extra funkció kikapcsol. Az előírásoknak meg megfelel, sőt meg is haladja majd teljesítményben.
A féklámpára pl 800 lumen a rendelet szerint a megengedett fényerő. Na ezt 40% kitöltöttségnél teljesíti a féklámpám. Na jó, a sötétített búra miatt jó lesz az nagyobbnak is, de érted.
Fogok látszódni verőfényes napsütésben is, meg ködben is.A BT az a telefonos vezérléshez kell. Leginkább csak a beállításokhoz, a legfontosabb funkciókra két nyomógombot helyezek el a kezelőszerveknél.
[ Szerkesztve ]
-
Teasüti
nagyúr
SW watchdog amikor az ESP32 újraindul, mert szarul írtad meg a programot és az egyik mag túl nagy időszeletet kap a program számolására és nem adja vissza a vezérlést az oprendszernek.
Atmel328p-n is lehet készíteni egyfajta SW watchdog-ot - van rá kész könyvtár is. Én sikerrel debug-oltam vele a programjaimat, amik megakadtak mondjuk egy végtelen ciklusban vhol.HW watchdog meg az, amikor egy külső chip a proci működését figyeli és ha az kifagy, akkor reset-eli a rendszert.
ESP32-n úgy rémlik van SW és HW watchdog is. Így az én esetemben csak meghibásodásról beszélhetünk.A HW watchdog-ot én egy monostabil 555 chip-el oldottam meg, amit a kontroller pwm jele triggerel és fent tart egy relét, ami a bemenetek közt vált (külső vagy belső pwm).
[ Szerkesztve ]
-
Tankblock
aktív tag
Hello
Sw watchdog is van sokféle, pl lehet monitorozni adott idő alatt hányszor futott le adott szál, illetve minden fontos szál lefutott-e. Esp-idf ben volt rá példa.
Másik amikor 2 magon futtatod ugyanazt a számolást és megnézed hogy az eredménye ugyanaz e.
Hw wachdog legegyszerűbb megvalósítása N555 ahogy Teasüti leírta, de vannak bonyolultabb megoldások is, pl időre kérdés válasz elvén egy másik uC nézi h pl adott szám komplemensét kapja e vissza...
Biztonságkritikus alkalmazásnál a tervezéskor is a biztonság az első. Monitorozásokat kell beépíteni és informálni a vezetőt ha valamelyik részkomponens nem megbízhatóan működik, és funkciót letiltani.
Szép szakma ez
Release the Beast....
-
_q
addikt
válasz Tankblock #8529 üzenetére
Köszi, ahogy látom nem ez az első hogy ilyennel találkoztál sajnos nekem az egyszerűbb feladatoknál megakadt a tudásom.
Pl. most megakadtam a nyomógomb prell mentesítésénél. Valahogy nem akar szoftveresen összejönni. Interruptal történő nyomógomb prell mentesítésére is van ötleted?
[ Szerkesztve ]
-
Attix70
aktív tag
Látom sokan vágják az analóg elektronikát is
Próbáljuk meg a mondatokat NAGYbetűvel kezdeni
-
DrojDtroll
addikt
Kaptam egy feladatot.
Hálózati feszültség ingadozását kellene vizsgálnom. Egyenlőre nem tudom milyen gyakorisággal.
NodeMcu küldené az adatot egy addatbázis szerver felé.
Milyen szenzort érdemes erre hasnálni?
-
tvamos
nagyúr
válasz DrojDtroll #8533 üzenetére
Mennyi a keret erre a projectre? Elvileg 3 ellenállás is elég.
"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János
-
DrojDtroll
addikt
A nodemcu-n kívül 5k.
Közben kiderült hogy 3v pontosság kell.
-
tvamos
nagyúr
válasz DrojDtroll #8535 üzenetére
5 ezer Ft? Az nem sok.
Nagyon regen csinaltam ilyet, ARM7-tel, el fogom kuldeni a nagyon bonyolult kapcsolasi vazlatot.
[ Szerkesztve ]
"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János
-
// Chaka //
tag
válasz DrojDtroll #8533 üzenetére
Trafót?
szerk: Vele sorosan egy ellenállás, a negatív oldal vágására egy pici Shotky dióda. 230/3-as trafónál kb. 4.5V a csúcs. Ha ez sok, akkor még egy ellenállás a föld felé. Nem tudom, milyen az a/d felbontása, de ha 10 bites, akkor akkor erőlködés nélkül az 1V felbontás is elérhető. Persze ahány trafó, annyi, szóval egyedenként kell így bemérni. De legalább nem ráz.[ Szerkesztve ]
Több ezer telefonszámot tudok fejből, csak azt nem tudom, hogy melyik kié.
-
// Chaka //
tag
válasz // Chaka // #8537 üzenetére
... hopszi, a pontossága nem is olyan biztos, hogy 3V lesz a teljes tartományban. Nem tudom, hogy a terheletlen trafó mennyire lineáris ....
Több ezer telefonszámot tudok fejből, csak azt nem tudom, hogy melyik kié.
-
_q
addikt
Hát nem nagyon van mit beillesztenem. Ezért szeretnék ötletet kérni. De akkor vázlatosan:
void setup() {
pinMode(buttonPin, INPUT);
attachInterrupt(digitalPinToInterrupt(buttonPin), buttonInterrupt, FALLING);
....
Hőmérő inicializálás;
....
}
void loop() {
óra kiíratása;
....
Hőmérséklet kijelzőre küldése;
...
}
//gomb megszakítás függvény
void buttonInterrupt() {
clockHour++;
if(clockHour > 23)
{
clockHour = 0;
}
Serial.println(clockHour);
//delay(200);
}Lényeg az lenne, hogy kiíratom az időt és a hőmérsékletet. Egyelőre a hőmérséklet része jó, az óra részét pedig még nem egyből a konkrét idő kiíratással oldanám meg, hanem a nyomógombot tesztelném, hogy be lehessen állítani vele egy konkrét időt, jelen esetben 0-tól 23-ig úgy hogy közben a loop-ban megy hőmérséklet kiolvasás és kiíratása a kijelzőre.
Sajnos amikor nyomom a nyomógombot, akkor ha egy pillanatra nyomom is le akkor is folyamatosan írja ki a számokat, mint ha folyamatosan nyomtam volna le a gombot. Erre kellene egy prell mentesítés szeirntem.
-
_q
addikt
detachInterrupt(buttonPin);
Ezzel a függvénnyel kikapcsoltam az gomb megszakítást majd a ha lefut a loop bekapcsolom ismét. Így most nem prelleg viszont így lassan fut le, mivel a hőmérséklet lekérdezés 2 másodpercenként megy,így a megszakítás is 2 másodperc múlva kapcsol vissza. Lehet érdemes megszakítással kezelni a hőmérséklet lekérdezést és a loop-ba csak a kijelző frissítést tenni.
-
_q
addikt
A delayt csak próba miatt tettem bele, nem szép, de rá akartam jönni hol csúszik el a dolog. A kijelzős részt nem teljesen jól írtam le, úgy gondoltam, hogy egy timerrel számolom a 2 másodpercet és az megszakításként változtatna egy változót, ami mondjuk egy if szerkezeten belül végrehajtaná a kijelzést.
Ha már itt tartunk ESP32-re van jó timer leírás megszakítással egybekötve? Uno-hoz jól le van írva több helyen is hogy timer0 millis és delay-ért felelős, timer1 és timer 2 pedig szabadon használható. Mi a helyzet ESP32 esetében?
(#8544) aryes
Igen mert amiket próbáltam nem működött, ezért nem is tettem bele, csak a kódot magát hogy látszódjon amiből kiindulnék. -
Gergosz2
veterán
-
-
nagyúr
Próbáld meg ezt a kódot:
volatile unsigned long lastDebounceTime = 0;
void setup() {
pinMode(buttonPin, INPUT);
attachInterrupt(digitalPinToInterrupt(buttonPin), buttonInterrupt, FALLING);
....
Hőmérő inicializálás;
....
}
void loop() {
óra kiíratása;
....
Hőmérséklet kijelzőre küldése;
...
}
//gomb megszakítás függvény
void buttonInterrupt() {
if ((millis() - lastDebounceTime) > 50) {
clockHour++;
if(clockHour > 23)
{
clockHour = 0;
}
Serial.println(clockHour);
//delay(200);
}
lastDebounceTime = millis();
}Ha még ezzel is pereg a nyomógomb, az 50-et növeld addig, amíg megszűnik a probléma. Szerintem 200-ig simán lehet növelni, cserébe másodpercenként 5 gombnyomástól többet nem fog regisztrálni (mondjuk annál gyorsabban úgysem igen lehet gombot nyomogatni ).
[ Szerkesztve ]
-
_q
addikt
Tökéletes, köszi
Amivel próbálkoztam az mind a loop-on belül figyelte a gomb állapotát, sajnos az eredmény részben javult de nem oldotta meg teljesen. Ez amit linkeltél viszont igen.
Egy kérdés merült fel, a millis() függvény úgy emlékszek talán 32 napig képes elszámolni. Lényeg hogy van egy véges ideje. Az unsigned long el tudja tárolni az egészet? Illetve ha eléri a max értékét a millis() függvény, túlcsordul és kezdi 0-ról ismét, tehát nem lesz gond sose akár más esetben se ha millis() függvényt ilyenre használom, hogy mennyi idő telt el 2 állapot között?
[ Szerkesztve ]
Új hozzászólás Aktív témák
- APPLE MacBook Air 2020 13" Retina - M1 / 8GB / 256 GB SSD / MAGYAR / 96% akku, 81 ciklus / Garancia
- LG NanoCell 55NANO766QA Halvány píxel csík
- Philips 58PUS8545/12 1 ÉV GARANCIA Játék üzemmód
- Tyű-ha! HP EliteBook 850 G7 Fémházas Szuper Strapabíró Laptop 15,6" -65% i7-10610U 32/512 FHD HUN
- Bomba ár! HP EliteBook 840 G5 - i5-8G I 8GB I 128GB SSD I 14" FHD I HDMI I Cam I W10 I Gari!