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.
Gyorskeresés
Legfrissebb anyagok
Általános témák
LOGOUT.hu témák
- [Re:] [sziku69:] Fűzzük össze a szavakat :)
- [Re:] [D1Rect:] Nagy "hülyétkapokazapróktól" topik
- [Re:] [Mr Dini:] Mindent a StreamSharkról!
- [Re:] [Luck Dragon:] Asszociációs játék. :)
- [Re:] [moongoose:] Retro AT rendszerű számítógépház textúrájának visszaállítása.
- [Re:] [sziku69:] Szólánc.
- [Re:] [Sub-ZeRo:] Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- [Re:] eBay-es kütyük kis pénzért
- [Re:] [gban:] Ingyen kellene, de tegnapra
- [Re:] Gurulunk, WAZE?!
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
Útvonal
Fórumok » Egyéb hardverek » Mikrokontrollerek Arduino környezetben (programozás, építés, tippek)Téma összefoglaló
Hozzászólások
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
A kicsatoló kondi miért kell? Nem viszi az a jelszintet GND alá? Nem hiszem, hogy az jót tenne az analóg bemenetnek.
Attix70
aktív tag
Ha közvetlenül kötöd mikrokontrollerre akkor nem fontos, de ha a mikrokontrolleren állítod be az egyenkomponenst (lehet nem 2.5V mint itt) akkor lehet hogy könnyebb feldolgozni a jelet.
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
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 ]
Teasüti
nagyúr
PCA9555
gyapo11
őstag
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
És mi lenne, ha egy sima piezo csipogót kötne rá az analóg bemenetre? Erősítés nélkül is elég magas feszültségszinteket tud produkálni, inkább limitálni kellene, hogy ne lépje túl az 5V-ot.
[ Szerkesztve ]
_q
addikt
Korábban szó volt vagy SPI vagy I2C-ről hogy mekkora hatóvon használható. Akkor én azt mondtam, hogy emlékeim szerint több méteren már kelleni fog valamilyen expander vagy felhúzó ellenállás. Emiatt kerested az IC-t amit ahogy látom közben megtaláltál?
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 ]
_q
addikt
Nem teljesen értem, I2C buszra talán valami 100+ eszköz köthető, milyen port kevés?
Teasüti
nagyúr
Kevés a GPIO az ESP32-n. Ezért kell az expander. 3 másik I2C eszköz mellett.
_q
addikt
Áh, benéztem. A kommunikáció I2C az expanderrel, már meg van
Egyébként hogyan fogyott el a közel 25-30 GPIO?
ZTE_luky
aktív tag
oké, köszönöm!
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
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 ]
Tankblock
aktív tag
Lehetek kíváncsi egy kicsit jobban?
Mi lesz ez?
Miért kell a LED Strip front, back, 1-4 et 2 helyre is bekötni?
Ha címezhető akkor 1 el is megoldható, ha nem akkor sem látom át miért kell 2 helyre kötni.
Release the Beast....
Teasüti
nagyúr
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 ]
_q
addikt
Szép rajz, elég összetett lesz ahogy látom így már érthető a kevés gpio. Egyébként miért ezt a tervezőt használod?
Teasüti
nagyúr
Mert lusta vagyok megtanulni még egy CAD-et. Meg itt felhőben van minden, integrált online alkatrész adatbázis, könnyű használni és eddig még nem volt igazán szükségem ennél többre.
A nyákokat meg úgyis tőlük rendelem.
Tankblock
aktív tag
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
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 ]
Ez nagyon jól hangzik.
_q
addikt
"remélem gondoltál a biztonságra is, HW & SW watchdog mindenképpen legyen"
Ez mit jelent és hogy kellene megvalósítani általában, nem feltétlen ennél a konkrét esetnél?
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
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 ]
Illeszd be ide a kódot és kitaláljuk, hol a hiba.
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
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
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
(#8537) // Chaka // válasza DrojDtroll (#8533) üzenetére
// Chaka //
tag
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é.
(#8538) // Chaka // válasza // Chaka // (#8537) üzenetére
// Chaka //
tag
... 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é.
ZTE_luky
aktív tag
ez nem feltétlen igaz, a mikrofonnak számos hátránya van. Pl ha van háttérzaj bezavar a jelbe, amíg kábelen a tiszta jelet kapná csak.
De te nem CD felvételt akarsz vele csinálni, csak egy lámpát vezérelni.
Szerintem egyáltalán nem lenne gáz, ha pl. tapsra is felvillanna, de te tudod.
_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.
weiss
addikt
Interrupt függvénybe nem rakunk komolyabb dolgot, mint egy változó beállítása, kiíratást meg delayt végképp nem.
I did nothing, the pavement was his enemy!
"megakadtam a nyomógomb prell mentesítésénél. Valahogy nem akar szoftveresen összejönni. "
Nem csodálom, mivel nincs szoftveres prellmentesítés egyáltalán a kódban.
_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
azért tegyük hozzá ez az atmega8 sajátossága miatt van itt így.
Meg azért komolyabb dolgot is lehet oda tenni, csak számolgatni kell mennyit fut az interrupt, ne hogy egymásra fussanak.
[ Szerkesztve ]
Nokia 6030 Hardcore User // I Panic Restaurant by Taito
_q
addikt
Köszi. Gomb volt kéznél, ez nem is jutott eszembe. ESP32 kezeli a touch bemeneteket így ez is lehetne opció. Mondjuk nem tudom hogy ilyen esetben hogyan lehetne megoldani, mivel csak a touch PCB kellene vagy nem is tudom hogy szokás.
[ Szerkesztve ]
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 ]
Mai Hardverapró hirdetések
prémium kategóriában
- Új 2K AM5 Gamer PC R5 7600/RTX 3070 8Gb/2X8Gb 6000Mhz DDR5/500Gb SSD M2/700W 2Év gari
- Ryzen PC , R5 2600 , RTX 3060 12GB , 16GB DDR4 , 256GB NVME , 500GB HDD
- Játszós PC , R5 5500 , RX 5700 XT , 16GB 3200MHz , 512GB NVME
- Új 2K Gamer PC Ryzen 9 5900X/RTX 3070 8Gb/Asus Tuf lap/M2 500Gb NVME/2x16Gb DDR4/750W 2Év gari
- ASUS VivoBook Pro 14 OLED Ryzen laptop RTX VGA-val