- Hamarosan megkezdődik a nubia 2,8K-s táblagépének szállítása
- Barátokká váltak az eddig rivális AI-óriások
- ASUS blog: Ideális olcsó utazós gép lett az új Vivobook S14
- Az Aura Displays hordozható monitorhármasa jól felturbózhatja a produktivitást
- Dual Mode-os IPS monitorral adott magáról életjelet a Gigabyte
- Melyik tápegységet vegyem?
- Milyen széket vegyek?
- Szünetmentes tápegységek (UPS)
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Vezetékes FEJhallgatók
- Milyen billentyűzetet vegyek?
- Azonnali alaplapos kérdések órája
- Teljesen az AI-ra fókuszál az új AMD Instinct sorozat
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- Androidos tablet topic
-
PROHARDVER!
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
-
Gergosz2
veterán
válasz
gordonfreemN #23221 üzenetére
Most kicsit meglepett ez a 6ks szállítás, legutóbb amikor kistételt rendeltem sima 2k volt a posta. Lehet ahhoz is köze van hogy melyik raktárban van nekik az alkatrész. Amúgy az esetek 99 százalékában mindig bőven 15k felett rendelek
-
Gergosz2
veterán
válasz
gordonfreemN #23218 üzenetére
Én elég sok TIs drivert használtam már. Gyorsan rákeresve ez akár jó is lehet neked:
https://hu.mouser.com/ProductDetail/Texas-Instruments/DRV8213DSGR?qs=HoCaDK9Nz5fr9x8VVVVBBg%3D%3D
És igen, mouserről 1 darabot is kihoznak neked (plus nyilván a posta ami 2k, de amúgy 15k feletti rendelésnél gyakorlatilag mindig ingyen van.)
-
Postas99
senior tag
válasz
gordonfreemN #23218 üzenetére
Mi a baj a Lomex-el és a HQelektronikával? A RET nekem kicsit fura, tán csak 1* rendeltem onnan..
A Hestore szerintem qrvasok alis cuccot árul itthon egy kissé fölé árazva, igy ha gyorsba kell valami csak akkor vásárolok onnan.Hozzáteszem, a régi szép időkben a ChipCAD-től vettem egy halom cuccot mert nem volt árukészlet hiányuk.. és akkoriban csak PIC-el foglalkoztam.
-
Janos250
őstag
válasz
gordonfreemN #23209 üzenetére
Megkerestem az adatlapját.
https://eu.mouser.com/datasheet/2/196/Infineon_IRF7316_DataSheet_v01_01_EN-3363332.pdf
Úgy tűnik, valóban elég jól kinyit (Fig 7) -
Tankblock
aktív tag
válasz
gordonfreemN #23209 üzenetére
USB az 500mA oszt ki per vezérlő a USB slotok között. és általában nem éri el 5V se.....
Ha a motor szeretne többet bajban leszel.... és ne a motorra ráírt áramot nézd, hanem az indítási karakterisztikát....
FET lévő Body dióda nem védi meg az a kialakítása végett van ott....
Fluke sztem lassú lesz peak detektornak, max sacc per köbláb (oszcilloszkóp kellene).
Abba gondolj bele ha motor az egy tekercs ahogy meg próbálod megállítani vagy megfordítani az irányt a tewkercxs szerenté az addig fenntlévő áramot fennttartani..... ezért kell egy dióda / FET.....motorvezérlő mellett szavazok abba be van építve minden....
-
Janos250
őstag
válasz
gordonfreemN #23203 üzenetére
Ha egy FET-en 1V esik, akkor ott baj van. Nem nyit ki rendesen. Akkor melegszik is, nézd meg, melyik meleg!
A FET-ek egy részének kevés az 5V nyitáshoz. A P FET-ek bekötése egy kicsit macerásabb.
Én is inkább gyári panelt javasolnék.
Keress rá Aliexpressen a megvehetőre, és az elvi megoldásra Google-on.
A kódszó: "H-bridge". -
Tankblock
aktív tag
válasz
gordonfreemN #23203 üzenetére
Szia
Ne kérj elnézést, nem kell. Ez a fórum tanulásra van. 1V drop valószínüleg a push pull driverből adódik, nem biztos neked kell vele foglalkozni....
A te megoldásodon is lesz feszültségesés, nem beszélve ha megállítod a motort, főleg hirtelen ott lesz egy nagy feszültség spike (csúcs) ami simán kinyírhatja a FETet.... Kell 4db freeweeel diode amin megint csak for esni feszültség......
Ugye az a 5V feszültség nem egy USB?
DCDC convertert lehet használni, fiygelni kell az áramerősságre, és arra h amennyivel szeretnéd használni általában az ne legyen több mint a 80%....
Jobban jársz ha 9 ... 12V járatod.... és abból csinálsz 6V a motornak és 5V a uControllernek
-
válasz
gordonfreemN #23203 üzenetére
TB6612FNG kis tápfeszültségen nagyon jól teljesít, nekem is jó tapasztalataim vannak vele. Pont ilyenekre találták ki.
-
Tankblock
aktív tag
válasz
gordonfreemN #23192 üzenetére
Szia,
Adatlapot nézd meg kérlek.... megérzésem szerint 2 Gatet hajtani 20 mA nem biztos h jó ötlet. (2 condit fel kellene tölteni illetve kisütni, emelett nem is nyitna ki teljesen.,,,)
használj inkább motor driver IC-t pl [link] .
kicsit egyszerűbb, kisebb helyet is foglal, nem mellesleg működni fog.....
-
válasz
gordonfreemN #23192 üzenetére
Ha jól értem, amit szeretnél, akkor igen.
-
gordonfreemN
addikt
válasz
gordonfreemN #23190 üzenetére
Gyorsan összedobtam a lényeget, mire gondolok.
-
gordonfreemN
addikt
válasz
gordonfreemN #23189 üzenetére
7309:
-
Dißnäëß
nagyúr
válasz
gordonfreemN #21972 üzenetére
Nagy kedvencem hátulján...
-
Dißnäëß
nagyúr
válasz
gordonfreemN #21972 üzenetére
-
Dißnäëß
nagyúr
válasz
gordonfreemN #21967 üzenetére
Minden valamirevaló erősítőnek van egy trigger be, ki, vagy mindkettő -menete
Mono 3.5" jack általában, ergo ha van egy DAC, PRE, ilyesmi a lánc elején, pláne ha távszabályozható, egy trigger out-al, akkor ezt be lehet kötni a cél végfokba (vagy végfokokba) és ők amentén kapcsolnak be/ki, magyarul egyszerre több eszközt - kvázi az egész láncod - be tudod indítani egyetlen eszközzel.Tehát ha erősítőt építesz, nagyon ajánlom, hogy tegyél rá trigger IN-t és ha Te távszabályzod őt, akkor praktikus felkészítened arra is, hogy trigger OUT-ot is tegyél rá.
Az amperekről nincs infóm, de a fogadó oldalak úgy tudom, lényegében csak feszültségszintet figyelnek, sok gyártó 12V-ot vár, mások 5-12, fogalmam nincs, hány V-ra csináljam az enyém, lehet 12 lesz, majd meglátom.
De ha nincs triggere az eszközödnek, akár master (adó), akár slave (vevő), itten a link a tutisághoz.
Egy végfok, amit ilyennel lehet ki-be kapcsolni például. 2 is van rajta, egyik a be, másik a ki (vagy through, tehát amit kap, azt tovább is adja, daisy chaining rulz).
-
Dißnäëß
nagyúr
válasz
gordonfreemN #21962 üzenetére
Te is benne vagy az erôsítô építôs topic-ban, most meg is néztem, igen, azt hittem, tiszta lesz.
Mea culpa.
-
Dißnäëß
nagyúr
válasz
gordonfreemN #21960 üzenetére
DAC -> erôsítô(k) .. távszabályzása az egész láncnak.. on/off.
-
Ton-ton
tag
válasz
gordonfreemN #21953 üzenetére
Így már sok minden világos.
Érthető, hogy nem akarsz váltani. -
Dißnäëß
nagyúr
válasz
gordonfreemN #21955 üzenetére
Eeeegen, én is be akarom fejezni a sajátom, szeptember óta itt dekkolok idegen helyen átmenetileg, végre talán jövő héten költözök a sajátba (elkészült). Egyszer majdcsak összeáll.
-
Ton-ton
tag
válasz
gordonfreemN #21944 üzenetére
Egyébként a gombokon is tudsz spórolni.
Ha emlékeim nem csalnak, négy gombot szeretnél kezelni, amik az analóg portra kerülnek. Egyszerűen 4 eltérő értékű ellenállást köss a gomb és a tápfeszültség közé, így a négy gombot egyetlen analóg port felhasználásával le tudod kezelni. (Persze ha nem akarsz sok kódot, akkor javasolt mechanikusan biztosítani, hogy egyszerre csak egy gombot tudj megnyomni) -
Ton-ton
tag
válasz
gordonfreemN #21944 üzenetére
Az általam javasolt relé panelek.
-
Ton-ton
tag
válasz
gordonfreemN #21944 üzenetére
csak a méretek miatt.
Legalul az Uno (atmega 328)
Felette a nano (ugyanaz az atmega 328 chip)
Majd egy esp32
Rpi pico és pico w
Wemos d1 mini (ez is esp32 chipes). -
Ton-ton
tag
válasz
gordonfreemN #21944 üzenetére
Ha jól emlékszem két arduino paneled van. Össze todod őket kötni egy I2C porton. Így akár az összes relét át tudod tenni a második panelre, mivel ezek nem sebesség kritikus dolgok.
Mondjuk arra nem emlékszem milyen panelek vannak neked...Megából is van mini panel (ugyanaz a chip). Bár az sem olcsóbb
Nagyjából 4000 (itthon) a 8 csatornás relé panel, és akkor minimális kód változtatással megúszod. (Igen, kicsit többet fog fogyasztani, de itt kb. 1/100W-ról beszélgetünk)
Illetve ott vannak még az alternatív vezérlők. (Jellemzően olcsóbbak, és lényegesen gyorsabbak mint az Atmel vezérlők).
-
válasz
gordonfreemN #21944 üzenetére
Biztos jó az, ha leválasztod a XTAL1-2 vonalakat?
-
Wolfram
aktív tag
válasz
gordonfreemN #21944 üzenetére
Nem néztem, volt reakció a 3 dolláros ~40 (general purpose) pin-es ESP-re?
https://www.aliexpress.com/item/1005001636295529.html -
Gergosz2
veterán
válasz
gordonfreemN #21897 üzenetére
De az I2C egy busz amúgy, szóval több eszközt is aggathatsz rá.
-
bagarol
tag
válasz
gordonfreemN #21922 üzenetére
Ledek helyett használj ws2812-t, 1 gpio elég az összeshez.
Atmel(microchip) helyett szerintem inkább rp2040, igaz 3 voltos. -
its_grandpa
tag
válasz
gordonfreemN #21897 üzenetére
Remélem nem hágok át semmilyen szabályt.
A Mega2560-ak ára nagyot esett Ali-n, 75 % , megkapod ~ 10 $ -ért (8,90 ; 9,50).
Sok helyen - trükkösen - 10 $ felett free shipping.
De hát úgy is 2 kell, legyen tartalék, 20$ meg ~ 7.200.- HUF. -
válasz
gordonfreemN #21916 üzenetére
És miért jobb azt használni?
-
Ton-ton
tag
válasz
gordonfreemN #21916 üzenetére
Így már megvan. Köszönöm.
-
gordonfreemN
addikt
válasz
gordonfreemN #21915 üzenetére
set-reset vagy latching relay angolban
-
Ton-ton
tag
válasz
gordonfreemN #21913 üzenetére
Gyakorlatilag a relékre egy megoldás. Nem tudtam, hogy az már megvan.
A bipoláris relé elnevezést nem ismerem így. Tudsz mutatni valami kapcsolást, vagy linket? -
Ton-ton
tag
válasz
gordonfreemN #21908 üzenetére
Javaslom megfontolásra az úgynevezett relés panel beszerzését. Optocsatolt a bemenet (védi a vezérlőt), van rajta LED (amit végülis csak ki kell vezetékezned az előlapra - mivel ez smd nem biztos hogy a legjobb ötletem)
-
Postas99
senior tag
válasz
gordonfreemN #21908 üzenetére
Jól gondolom, hogy esetleg egy muliplexer-t használva kevesebb lábbal is megoldható lett volna a dolog?
Legalábbis amit leírtál nekem ez jött le. -
Ton-ton
tag
válasz
gordonfreemN #21908 üzenetére
Akkor kanyarodjunk vissza az eredeti problémához...
A 6db LED láb teljesen felesleges, hisz ugyanoda kötheted őket, ahova a reléket. (Előtét ellenállas azért kell)
És máris van 6 szabad láb, nem kell újraírni a programot sem, maradhat a megszokott vezérlő. -
Gergosz2
veterán
válasz
gordonfreemN #21897 üzenetére
Shift register? PL egy 74hc595.
-
Janos250
őstag
válasz
gordonfreemN #21897 üzenetére
Mindenki azt fogja javasolni, amit ő használ. Én természetesen az ESP32-t preferálom, mert ha per pillanat nem is kell, olyan technikákat is megtanulhatsz vele a jövőben, aminek később hasznát veszed, és sokkal könnyebben veszed elő azt a technikát, ami úgyis ott van bótilag, mint ha ehhez át kellene állnod bármire.
Pl. ESP32-n nincs olyan, hogy az "SDA-SCL pinek foglaltak".
Az ESP32-ben van egy mátrix. A benne lévő hardverek vannak a mátrix - mondjuk - soraiban, a pinek meg az oszlopaiban. Amelyik kereszteződésbe teszel szoftveresen egy "pöttyöt", ott vezet, máshol nem. Vagyis bármi átirányítható bármelyik pinre, és ez csak pár ns-sel növeli meg az elérési időt.
Nem lényegtelen az se, hogy megtanulhatod vele pl. a párhuzamos programszálak használatát. Mind a C++ párhuzamos szálait, mind az ESP32 párhuzamos programozását.
Teljesen más lehetőségek is adódnak így.
Pl.: Ha van valami eszközöd, amire 5 sec-ként rá kell nézni, egy másikra meg 6 sec-enként, akkor nem kínlódsz azzal, hogy számolgasd, éppen hol tartasz, melyiket kell megnézni, hanem elindítasz két szálat. Az egyik ránéz a kívánt eszközre, majd delay 5 sec, a másik meg ugyanígy, de 6 sec. Teljesen függetlenek lesznek, egymást nem zavarják, és nem várakozás lesz a delay, hanem olyankor átadja a vezérlést a többi szálnak, nem fékezi a többit.
Stb.
Természetesen a Te döntésed, mi javaslatokat nem adhatunk, csak szempontokat, hogy miket vegyél figyelembe a döntésednél. -
JulianSinulf
őstag
válasz
gordonfreemN #21901 üzenetére
[link]
Nekem elég barátságos az ára. Majdnem rendeltem is. De egyelőre nem kell.
Ettől az eladótól rendeltem már párszor ardunio-s cuccokat, nem volt vele gondom. -
Postas99
senior tag
válasz
gordonfreemN #21897 üzenetére
Támogatom amit Aryes írt.
Esetleg ha maradnál Atmel vonalon, akkor ezt érdemes még figyelembe venni:
LGT8F328P LQFP48 Ez egy továbbfejlesztett ATMega328, több láb gyorsabb működés teljesen kombátible az eredeti mikroprocival.
Ennek az ára 2 dodó sincs aliról. Az arudino mega klónok detto ugyanezzel a cuccal készülnek.
Van 3.3V és 5V-os cucc is belőle. -
válasz
gordonfreemN #21897 üzenetére
Nem emlékszem, hogy írtad-e, mit építesz, kontrollert a feladathoz érdemes választani, meg egyéb paraméterek is számítanak, például 5 vagy 3 voltos tápot és logikát használsz-e? Ha maradsz az 5V logikánál, akkor 2560 mellett szóba jöhet a pro micro például, de ha kihasználod a 2560 rengeteg portját, akkor megéri az árát, mert robusztus, megbízható uC, régóta bizonyított. Ha 3V logikára át tudsz állni, akkor szélesebbek a lehetőségek, ESP32 és STM32 blackpill rengeteg porttal, vagy az említett rpi pico.
Port extenderrel egyszer próbálkoztam, nálam problémás volt a kommunikáció, időről időre lefagyott az i2c, de az bármitől is lehetett, rossz táp vagy rossz programozó
Valószínűleg én voltam béna, de szerintem tehetsz vele egy próbát, csak teszteld le, mielőtt nagyobb mennyiségű nyákot rendelnél hozzá látatlanban.
-
Ton-ton
tag
válasz
gordonfreemN #21897 üzenetére
Esetleg rpi pico?
Vagy ha wifi is kell, akkor pico w.
Bár kicsit macerás a program feltöltés (arduino ide alatt , bár az is lehet, hogy azóta javítottak rajta)
Gondot leginkább az okozhat, hogy 3,3V-os az IO (ahogy a szinte minden modern vezérlőn). -
bagarol
tag
válasz
gordonfreemN #19805 üzenetére
-
bagarol
tag
válasz
gordonfreemN #19803 üzenetére
Pedig rá kéne futnia az utolsó if-re.
A break-re kilép a switch-ből. -
bagarol
tag
válasz
gordonfreemN #19801 üzenetére
Kicsit megkavart a waiting,de ennek jónak kell lenni:
#include <IRremote.h>
int RECV_PIN = 11;
int playPin = 8;
int pausePin = 13;
IRrecv irrecv(RECV_PIN);
decode_results results;
uint32_t lastms= 0;
void setup()
{
Serial.begin(115200);
irrecv.enableIRIn(); // Start the receiver
pinMode(playPin, OUTPUT); // sets the digital pin as output
pinMode(pausePin, OUTPUT); // sets the digital pin as output
}
void loop() {
if (irrecv.decode(&results)) {
long int decCode = results.value;
Serial.println(decCode);
switch (results.value) {
case 6072407:
Serial.println("Play");
digitalWrite(playPin, HIGH); // sets the LED on
digitalWrite(pausePin, LOW);
lastms = millis();
break;
case 6066287:
Serial.println("Pause");
digitalWrite(pausePin, HIGH); // sets the LED on
digitalWrite(playPin, LOW);
lastms = millis();
break;
case -1:
lastms = millis();
break;
default:
Serial.println("Waiting ...");
}
irrecv.resume(); // Receive the next value
}
if (millis() - lastms > 150) {
lastms = millis();
digitalWrite(pausePin, LOW);
digitalWrite(playPin, LOW);
}
} -
gordonfreemN
addikt
válasz
gordonfreemN #19790 üzenetére
Ez jelenleg szintén azt teszi, hogy megnyomom: felvillan és marad akkor is ha elengedem a gombot.
(#19791) vargalex
A -1-es case esetén (eset esetén) ha betettem a break-et, akkor a case -1 és a hozzá tartozó break közti műveleteket sem hajtotta végre.
(#19792) vargalex
A soros log alapján Ayres kolléga megoldása jó kell, hogy legyen. A case -1 ágába a break-on kívül más nem kell. Akkor ez pipa, így is csináltam, de nem a kívánt (még nyomom addig világít) módon működött továbbra sem.
Viszont azt gyanítom, hogy kellene valami timeout is, mert amíg nyomod, addig jön a -1, igen ez így van
de ha elengeded, akkor nem fog jönni semmi igen, ez is így van
és nem is fut be a default ágba. pontosan ezt próbáltam meg lentebb kevesebb sikerrel megosztani
Vagy, ha nem nyomsz gombot, akkor az irrecv.decode-ban áll? Ott hogyan állhat, ezt honnan tudom? Az a baj, azt se tudom az irrecv.decode mit jelent vagyis mit csinál, számomra ismeretlen arduino parancs. Keresgéljek utánna? Vagy van kedved esetleg segíteni megérteni? A jelentése gondolom én az lenne, hogy IR receiver decode, azaz az IR vevő dekódolás, tehát a fogadott jel dekódolása, vagyis a fogadott, IR adó által küldött kódból különböző szűrőfázisokon és demoduláláson átesett jel -
vargalex
félisten
válasz
gordonfreemN #19786 üzenetére
A soros log alapján Ayres kolléga megoldása jó kell, hogy legyen. A case -1 ágába a break-on kívül más nem kell. Viszont azt gyanítom, hogy kellene valami timeout is, mert amíg nyomod, addig jön a -1, de ha elengeded, akkor nem fog jönni semmi és nem is fut be a default ágba. Vagy, ha nem nyomsz gombot, akkor az irrecv.decode-ban áll?
-
vargalex
félisten
válasz
gordonfreemN #19786 üzenetére
A break lényege, hogy utána más ág (így a default sem) hajtódik végre. Vagy nem értem, amit írsz...
-
bagarol
tag
válasz
gordonfreemN #19787 üzenetére
Látom más sem tud aludni.
VOLUME_UP DOWN != PLAY STOP.
Akkor mégis jó, amit itt [link] írtam, ezzel a változtatással:case -1:
lastms = millis();
break;
default:
Serial.println("Waiting ...");
if (millis() - lastms > 200) {
lastms = millis();
digitalWrite(pausePin, LOW);
digitalWrite(playPin, LOW);
} -
dew28
aktív tag
válasz
gordonfreemN #19786 üzenetére
Ha beteszem a break-et, nem hajlandó a benne lévő utasítást se végrehajtani
case -1:
***vegrehajtando feladat***;
break;
ugye igy csinaltad? ugye? -
gordonfreemN
addikt
válasz
gordonfreemN #19786 üzenetére
Na mostmár valamit a könyvtáraknál is szétcsesztem, le se tudom fordítani a kódot.
Ha valakinek lenne türelme ebben segíteni, akkor a maradék hajam hálával fog tartozni, amiért nem hullik ki.
Szerintem előlről kellene kezdeni, tehát, ahhoz hogy az IRremote.h lib nemtudom mitcsináljon kellene ez a lib, addig a kódban megírt "hivatkozások" nincs mire mutassanak szerintem. Tehát most fogom, törlöm az összes ilyen lib-et és akkor innen kezdjük.Na semmi. Van ez az IR remote könyvtár. Ezt lehet telepíteni többféle verzióban, az újjabbakban (2 felett) történt valami változtatás ami a régi hivatkozásokat (nem tudom mi ennek a neve, amikor a libben lévő megírt kódra egy paranccsal hivatkozunk) már nem ismerte, a példaprogramom meg a régi szerint volt megírva.
-
válasz
gordonfreemN #19779 üzenetére
ezek szerint az ismétlés kódja a -1 ?
Akkor nyertem az 0xffffff-el, előjelesen az -1
(valójában 0xffffffff, nem tudtam hány byte-os az IR kód).
Így akkor egyszerű a megoldás:
...
case -1:
break;
default:
Serial.println("Waiting ...");
digitalWrite(pausePin, LOW);
digitalWrite(playPin, LOW); -
bagarol
tag
válasz
gordonfreemN #19760 üzenetére
Így kb 1 másodpercig világít.
#include <IRremote.h>
int RECV_PIN = 11;
int playPin = 8;
int pausePin = 13;IRrecv irrecv(RECV_PIN);
decode_results results;
uint32_t lastms= 0;void setup()
{
Serial.begin(115200);
irrecv.enableIRIn(); // Start the receiver
pinMode(playPin, OUTPUT); // sets the digital pin as output
pinMode(pausePin, OUTPUT); // sets the digital pin as output
}
void loop() {
if (irrecv.decode(&results)) {
long int decCode = results.value;
Serial.println(decCode);
switch (results.value) {
case 6072407:
Serial.println("Play");
digitalWrite(playPin, HIGH); // sets the LED on
digitalWrite(pausePin, LOW);
lastms = millis();
break;
case 6066287:
Serial.println("Pause");
digitalWrite(pausePin, HIGH); // sets the LED on
digitalWrite(playPin, LOW);
lastms = millis();
break;
default:
Serial.println("Waiting ...");
if (millis() - lastms > 1000) {
lastms = millis();
digitalWrite(pausePin, LOW);
digitalWrite(playPin, LOW);
}
}
irrecv.resume(); // Receive the next value
}
} -
válasz
gordonfreemN #19760 üzenetére
Ha jól értem azt szeretnéd, hogy amíg tartod a gombot a távirányítón, addig világítson a LED, de írtam, hogy azért nem fog menni, mert a távirányító nem ismétli a kódot (nem küldi újra és újra amíg a gombot nyomod) csak bizonyos gomboknál, például a hangerő gombok. Illetve van olyan távirányító, ami ilyenkor nem a kódot küldi újra, hanem egy általános "ismétlés" kódot, ami azt jelenti, hogy "az előző gomb még nyomva van". Ha ez a helyzet, derítsd ki, mi ez a kód (például 16777215, ami 0xffffff-nek felel meg, úgy emlékszem egy távirányító ezt küldte ilyenkor). Egy telefon kamerájával könnyen tudod ellenőrizni, hogy a távirányító egyáltalán küld-e valamit: irányítsd a távot a kamera felé, a kijelzőn lilán fogod látni villogni a ledet.
-
vargalex
félisten
válasz
gordonfreemN #19760 üzenetére
A soros monitoron ilyenkor mit látsz? Valami csak lekapcsolja azt a ledet, ha csak felvillan... Ennyi a teljes kód, vagy csak kiemelted a lényeget?
-
Janos250
őstag
válasz
gordonfreemN #19751 üzenetére
Én úgy gondolom, hogy azokat a kódokat, ami még valamikor valakinek hasznára válhat a rá kapott magyarázatokkal együtt, azokat érdemes ide berakni. Nem kép, ami rengeteg helyet foglal, hanem szöveg.
-
válasz
gordonfreemN #19751 üzenetére
Szia! Szerintem ebből ne csinálj gondot, egy ilyen rövid kód simán elfér itt (hiszen pont ezért is van kódbeszúrás funkció az oldalon), ami hosszabb mondjuk 1-2 oldalnál, azt meg tedd fel mondjuk ide.
A kolléga már leírta a megoldást, én annyit tennék hozzá, hogy így viszont nagyon rövid ideig fog a LED világítani, hacsak a távirányító nem ismétli a kódot amíg a gombot nyomva tartod, de pont a play/pause gombokat nem szokták újraküldeni, inkább a hangerő, programváltó stb ahol számít, meddig nyomod, úgyhogy én tennék oda egy
delay(500);
sort minden felkapcsolás után:case 6072407:
Serial.println("Play");
digitalWrite(playPin, HIGH); // sets the LED on
digitalWrite(pausePin, LOW);
delay(500);
break;
case 6066287:
Serial.println("Pause");
digitalWrite(pausePin, HIGH); // sets the LED on
digitalWrite(playPin, LOW);
delay(500);
break;Ha ez a késleltetés zavarja a program működését (ugyebár ennyivel később fog kapcsolni) akkor állapotgépet kell használni helyette.
-
bagarol
tag
válasz
gordonfreemN #19751 üzenetére
default:
Serial.println("Waiting ...");. digitalWrite(pausePin, LOW);
digitalWrite(playPin, LOW); -
Tankblock
aktív tag
válasz
gordonfreemN #19638 üzenetére
Szia
A kérdés hogy gyorsan portolható megoldást keresel, mert akkor célszerű maradni az Arduino világban így könnyebben tudsz a uC között váltani,
vagy adott uC családot szertenél megtanulni.avr/sleep.h regiszter szinten állítja be közvetlenül az Atmega (AVR család) sleep módba, hozzáteszem a megfelelő regiszterek írásával te is megírhatod, ennek a megoldásnak az lesz az előnye h hatékony kódod lesz (nem forgatod bele az overheadet amit az Arduino okoz), hátránya hogy hosszabb lesz a betanulási görbe.... nemc csak a sleep van ott :-)
Microchipnek van tutorial oldala is: [link]
Amit látsz mint Arduino az egy univerzális wrapperbe csomagolt kód ami elfedi a uC sajátosságainak a nagy részét.
Mint minden ilyen megoldás hatékonyságvesztéssel jár, cserébe gyorsabban tudod alkalmazni egy másik uC családon a megírt kódot. Nem beszélek azokról az esetekről amikor 2 könyvtár ugyanazt a hw erőforrást használná és összeakad, szóval a hw arhitectúra nem ismerete okozni fog hátrányt.Power led nem 1mA lesz inkább 10-20mA. Lehet venni cél LED ami megvalósítja amit szeretnél, vagy megépítheted egy 555 időzítőből is.....
-
válasz
gordonfreemN #19645 üzenetére
A leírásod alapján teljesen felesleges az alvó módot erőltetni.
Egy mcu fogyasztása mérési hibahatáron belül van (a tévémben például a standby áramkörben van egy mcu abból a célból, hogy az IR szenzor jelére felébressze a tévét). Alvó móddal csak akkor van értelme foglalkozni, ha elemes/akkus táplálással szeretnéd használni a cuccot.
Ha egyszer mégis szükség lenne ilyen pulzáló effektre, és altatni is szeretnéd, a delay(30); helyére kellene tenni egy alvást, 30ms-re, időzítve. Esetleg csökkenteni a lépések számát, növelni a lépések közt az időt úgy, hogy az élvezeti értéke ne csökkenjen. -
dew28
aktív tag
válasz
gordonfreemN #19643 üzenetére
Ha ragaszkodsz ahhoz, hogy lemenjen alvoba az mcu, akkor nem lesz fade-ed, mivel az pwm vezerelt, az mcu-bol.
3 opciod van:
1: epitesz kulso aramkort ami amig tapot kap folyamatosan pulzal egy led-et az arduinotol fuggetlenul. (letezik onmagaban villogo LED is, nem fade, de megoldas lehet)
2: arduinorol: felvillan a led, 8sec alvas, felkel az mcu, megint villan egyet a led, 8sec alvas, stbstb. heartbeat jellegu.
3: mar elfelejtettem mit akartam 3.nak -
válasz
gordonfreemN #19641 üzenetére
Ha egy folyamatos kihunyó-felerősödő állapotot szeretnél, akkor altatás helyett lehet célszerűbb csak simán lejjebb venned az órajelet. Ilyenkor a fade effekt delay nélkül (vagy jelentősen kisebb delayel) pöröghet.
Ha ilyen szívdobogás jellegűt szeretnél, amikor a két felderengés között hosszabb idő eltelik, akkor érdemes altatni is. Ilyenkor az alap fogyasztásod az effekt hossza / üres idő aránya javítja.
Ugyanakkor megkérdezném: Ennyire energiakritikus az alkalmazás? Csak azért, mert az 328p fogyasztása összemérhető egy villogó LED-ével.
- Ha nagyon energiakritikus, akkor gondold át a standby LED-et is
- Ha nem energiakritikus, nincs szükség valós altatásra, csak berakod egy állapotba, amiből bármelyik pinnel ki tudod léptetni, és amíg a kilépő feltételt várja, fadeli a ledet. -
válasz
gordonfreemN #19638 üzenetére
Nyugodtan tegyél be pár sor programot
De hosszabb kódokat, log-okat pastebin-re vagy hasonló helyre szoktunk beszúrni és azt ide linkelni, mert praktikusabb.
A LED kezelést illetően az a baj, hogy az a loop többszöri futását igényelné, te viszont a loop közepén elaltatod a lapot. Megoldás: a kikapcsolás LED effektet egy for ciklusba tedd bele, a ciklus lejártával jöhet az altatás. -
Tankblock
aktív tag
válasz
gordonfreemN #19635 üzenetére
Szia,
nem vagyunk gondolatolvasók (sajnos),
kérdésem az lenne, mi lenne a cél amit el szeretnél érni?Ha csak ideveted a gondolataid felét, nem lesz senki aki segíteni tud, mert mindenki csak találgatni fog. Egy problémára meg van több megoldás.
Küldtem DataSheetet linket abban benne van a ennek a uC a működése.A kódodat feltehetnéd Gitre is publicusan akkor meg tudjuk nézni azon a linken amit ide teszel, és nem kell a fórumot teletenni kóddal
További jó hobbyzást!
-
dew28
aktív tag
válasz
gordonfreemN #19635 üzenetére
-
dew28
aktív tag
válasz
gordonfreemN #19631 üzenetére
de azt a hibát adja az ellenőrzés, hogy
'wakeUp' was not declared in this scope
csak egy tipp, de esetleg nem deklaraltad a wakeUp rutint?void wakeUp() {
// Just a handler for the pin interrupt.
}
-
válasz
gordonfreemN #19629 üzenetére
Nem akarlak kiábrándítani, de csupa idegen által megírt valamit töltesz fel amúgy is.
-
Tankblock
aktív tag
válasz
gordonfreemN #19625 üzenetére
Szia,
próbálok segíteni..
"ArduinoLowPower.h" ill "LowPower.h" telepíteni kell Könyvtárkezelőből.
Mi a különbség? --> mások írták, saccra ugyanazt lehet elérni velük.
A végén AVR registereket írja át úgy hogy a PowerMode különbféle sleep állapotba kerüljön."Lehetséges 9-es pinről is feléleszteni energiatakarékos módból, vagy csak a dedikált interrupt 1-2 lábakon?" --> csak interrupt láb lehet ebből a Atmega328 nak 2 van....
"A loop az energiamegtakarításkor i folyamatosan fut, vagy ilyenkor csak az interrupt lábat figyeli és ha azon bejön a megszakítás akkor feléled?" nem fut, csak az interrupt vector változásakor éled fel uC és fut tovább a loop kódja.
ebben találod a Power Mode, Reset interrupt handlig leírását...
-
válasz
gordonfreemN #17914 üzenetére
Elméletileg semmi akadálya, de utána kell nézni, hogy 5V-os jelszinttel kompatibilis-e a választott kijelző, mert ezek jellemzően 3,3V-ról üzemelnek inkább. De ez amúgy nem fog akadályt jelenteni, csak ha olyan, akkor kell hozzá szintillesztés.
Itt egy példa, hogy hogy kell ezt elképzelni (a kijelző itt egész pici, csak 0.95"-os): https://www.electronics-lab.com/project/color-oled-ssd1331-display-arduino-uno/update:
Itt egy kijelző kimondottan Arduino Mega board-hoz: [link]. Szerintem kompatibilis az Uno GPIO tüskesorával is, de lehet maga a board kevés lesz (pl. kevés a RAM) a driveréhez. -
válasz
gordonfreemN #17912 üzenetére
Hát annyi ötletem lenne, hogy egyénileg címezhető ws2812 RGB LED-eket kellene sűrűn egymás mellé applikálni egy PCB-re, mert ennyire sűrű LED szalagot gyárilag nemigen csinálnak.
Nem tudom mekkorára szeretnéd csinálni a kijelzőt, a legsűrűbb a 144LED/m, ott kb. 7mm egy osztás, akkor 10cm-re 14/15 LED jut. Arra kell tenni mondjuk egy polikarbonát csíkot, aminek a hátoldala fel van csiszolva, hogy szórja a fényt, és akkor egybefüggő csíknak fog látszani kívülről. Ez jutott eszembe.A kijelzős megoldást én nem vetném el abban az esetben, ha piciben szeretnéd elkészíteni, egy 4-5cm hosszú színes OLED kijelző erre pont jó lenne, viszont nagyobban azért nem érdemes, mert ilyen hosszúkás kijelzőt nemigen gyártanak, és a hosszával együtt a szélessége is nő, na meg az ára is, hatványozottan.
-
válasz
gordonfreemN #17909 üzenetére
Én inkább RGB ledekkel próbálnám megcsinálni, a videón látható mütyür is azzal van megoldva. Ügyes megoldás, az optikai részét nem tudom hogy csinálták.
Egy LCD kijelző, vagy inkább színes OLED is szóba jöhetne amúgy, de feleslegesen nagy kellene belőle, és nem biztos, hogy ugyanolyan flowless lenne a látvány, ezeknek a képrissítése nem túl gyors.
-
válasz
gordonfreemN #17778 üzenetére
Nem mindegy, ahhoz, hogy az elvárt módon működjön, CH340 DTR kimenetére, sorba egy kondival ês a 328 tápjára 10k-val.
Állítólag utóbbi felesleges, mert van belső felhúzó ellenállás a RESET lábon, de a gyári lapra se véletlenül került rá, szóval a stabilitás érdekében én biztosan rátenném. A diódát se hagyd ki, az meg a kondi miatt kell.
-
Janos250
őstag
válasz
gordonfreemN #17756 üzenetére
Én a hasonló dolgokat úgy oldottam meg, hogy olyan kész mikrokontrolleres panelt tervezek rá az én panelomra, amin minden szükséges dolog rajta van. Mivel én csak ESP32-t használok praktikus ok miatt, nem teszek fel panel képet, de korábban párat már tettem fel. Ha megnézzük az Easyedán lévő megosztott panelokat, többnyire ott sincsenek a kontrollerek egyedileg ráforrasztva, hanem kész panel van beleillesztve a user panelbe.
-
válasz
gordonfreemN #17762 üzenetére
Véletlenül én sem
Szerencsére alaposan körbe van dokumentálva minden open source Arduino lap. -
válasz
gordonfreemN #17758 üzenetére
Nyilván felhasználói oldalról - ha van rá felesleges szabad helyed a panelen, akkor - az a legegyszerűbb, ha teszel rá FT232-t meg usb csatlakozó aljzatot. Ha spórolni szeretnél vagy helyszűke miatt nincs rá lehetőség, akkor ISP.
Köztes megoldás lehet, ha csinálsz a panelre egy custom csatlakozót, amire kivezeted a RX,TX,GND,RESET lábakat, a kód feltöltéséhez pedig egy külön panelre teszed a FT232 chipet. Készen is lehet venni ilyen usb-uart konvertert.Hogy milyen kiegészítő alkatrészek kellenek, azt jól vissza lehet követni a bekötési rajzokról, például ezen 10k felhúzó ellenállás van a RESET lábon (330R feleslegesen kicsinek tűnik).
-
válasz
gordonfreemN #17756 üzenetére
Nem feltétlenül szükséges USB a feltöltéshez, használhatod az ICSP csatlakozó lábait is a feltöltéshez:
Ehhez persze kell egy ISP programozó, ha nem akarsz ebbe beruházni, akkor egy másik UNO-t is lehet használni (Arduino as ISP). Ehhez még bootloader sem kell.
Szükséges külső 16MHz-es oszcillátor vagy elhagyható?
Hát a Nano-n eleve van külső oszcillátor, te anélkül szeretnéd használni? Asszem van rá mód, hogy belső oszcillátort használjon, de ahhoz, hogy átállítsd, kell egy külső oszcillátor. -
válasz
gordonfreemN #17735 üzenetére
Jaj már
pinMode(mode_led1, OUTPUT);
Itt állítod kimenetre a pin-t. Azelőtt a pin bemenet (hi-z).Bocs, nem merültem el a kódban, hogy mivel mit csinál, csak a felmerült pin-spórolás témára reagáltam.
-
válasz
gordonfreemN #17733 üzenetére
Ezért ide már kellene eg, tranzisztor is, hogy amikor nincs fesz, akkor kapjon feszt a másik visszajelző led.
Kivéve akkor, ha minden kimenetre két ledet kötsz, egyiknek az anódját, másiknak pedig a katódját. Akkor az egyik csak magas, a másik csak alacsony szintnél világít.
Értelemszerűen a másik lábukat a +5V illetve GND-re kötve.
Mellékhatás: reset után, vagy ha bármilyen oknál fogva a kimenet bemenetre van állítva (hi-z) mindkét LED világítani fog egyszerre, ami egyébként hibajelzésnek is használható. -
válasz
gordonfreemN #17730 üzenetére
Fölösleges külön kimenetre tenni a LED-eket, amikor a vezérelt kimenetre is kötheted, ami elbír egyszerre egy relével és egy LED-del is, ezzel kódot, memóriát, kimenetet takarítasz meg és kellemes mellékhatás, hogy mindig a kimenet valós állapotát fogja visszajelezni, akkor is, ha mondjuk valami miatt lefagyna vagy resetelődne a program.
-
Tankblock
aktív tag
válasz
gordonfreemN #17726 üzenetére
Szia
Első blikkre használhatsz
#define
-t a PIN definícióhoz...Az EEPROM kiírást gondold át még egyszer, mert első blikkre minden 5 [sec] kiírod, és nem azt csinálod amit szeretnél. Ezzel lassan elhasználod EEPROMOT.... Elegendő ha volt valós change kiírni azt ahol volt change.
Én a gombokat csak interruptból figyelném, ha van változás akkor azt as loopba kezelném, hogy hol vagy a "menüben", és csak a setgomb változására kezdenék neki a funkció szerint a LED ill a relay kapcsolásoknak.
Ha beleásod magad a C++ rejtelmeibe is akkor nagyon sokféle megoldást fogsz találni.
A HW PIN kiosztást lesd meg, - én most nem tettem meg - mert ha egy portra teszed LED és a kimeneteket akkor 1 port írással megúszhatod az egészet.... De ez már csak szépség....
Új hozzászólás Aktív témák
Hirdetés
- Gitáros topic
- Kínai és egyéb olcsó órák topikja
- NOTEBOOK / NETBOOK / Mac beárazás
- Melyik tápegységet vegyem?
- Milyen okostelefont vegyek?
- Ubiquiti hálózati eszközök
- Miskolc és környéke adok-veszek-beszélgetek
- Kertészet, mezőgazdaság topik
- Háborog az Apple az iPhone-ra írt első pornóapp miatt
- Nintendo Switch 2
- További aktív témák...
- ÚJ PS5 Slim - FW 8.40 - Lemezolvasó - Lua Loader - Lua játék - Lapse
- új, bontatlan, iPhone 16E gyárilag kártya-független, apple világgaranciával
- Üzletből, garanciával, Macbook Pro Retina 16" 2019, Gray i9 64GB RAM 1TB SSD Radeon Pro 5500M
- Üzletből, garanciával, Macbook Pro Retina 16" 2019, Gray i9 64GB RAM 2TB SSD Radeon Pro 5600M 8GB
- MacBook Pro 14" M1 MAX - 32GB / 1TB (2021) - 1 év garancia
- BESZÁMÍTÁS! Apple MacBook Pro 14 M4 MAX 36GB RAM 1TB SSD garanciával hibátlan működéssel
- Jogtiszta Microsoft Windows / Office / Stb.
- BESZÁMÍTÁS! ASUS ROG Zephyrus GA403UV Gamer notebook - R9 8945HS 16GB RAM 1TB SSD RTX 4060 8GB WIN11
- iKing.Hu - Apple iPhone 16 Pro Max - Desert Titanium - Új, kipróbált
- AKCIÓ! AMD Ryzen 7 3800X 8mag 16szál processzor garanciával hibátlan működéssel
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest