-
IT café
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
-
PHM
addikt
válasz Harcipocok84 #17517 üzenetére
Talán a legegyszerűbb lenne egy 3,6-4,3 V-os zenert kötni az arduino bemenetére.
(Záróirányban.)
Így, ha fordítva kötöd be a mérővezetéket, a zener nem engedi a bemenetet a
a dióda letörési feszültsége fölé.
Ilyenkor legfeljebb extrém magas feszültséget fog a műszer mutatni, de baja nem lesz.Ma olyan bizonytalan vagyok... Vagy mégsem?
-
nagyúr
válasz Harcipocok84 #17517 üzenetére
Mi történik akkor, ha fordítva kötöm rá az akkumulátorra a mérővezetékeket? Negatív érték jelenik meg a bemeneten?
A feszültségosztó nem így működik. Ha fordítva kötöd be, akkor nem 0,2 lesz az osztási arany, hanem 0,8, és 10V körül kap a bemenet, amit a beépített védő dióda elvezet VCC irányba. Mivel a 7,5k miatt csak 1mA-t kell elnyelnie, valószínűleg egy hosszabb próbálkozást is túl fog élni ebben a konstellációban, de ha biztosra akarsz menni, tegyél egy 5,1V zener diódát a bemenet és a gnd közé.
Vagy kisebbet, ahogy a kolléga írta (lassú voltam).
[ Szerkesztve ]
-
JozsBiker
aktív tag
válasz Harcipocok84 #17517 üzenetére
Ha megfordítod a polaritást a DC-DC átalakítón is felcserélődik a betáp ( és ha túléli akkor az Arduino -n is ), tehát az analóg bemenet védődiódája a legkisebb gond.
[ Szerkesztve ]
-
nagyúr
válasz Harcipocok84 #17521 üzenetére
1. igen, feltéve, hogy annál magasabb feszültséget biztosan nem kap normális használat során (mondjuk nem használod digitális bemenetként is).
2. egyik sem. A letörési feszültség eléréséig semmit nem csinál. A határérték közelében kinyit és elkezd vezetni, tkp. rövidzárat képez a gnd felé. Az elnyelt áramtól és a dióda disszipációs képességétől függ, hogy mi történik vele, alacsony áram esetében semmi (üzemszerű működés), magasabb áram esetén megsül, aztán vagy rövidzárat képez, vagy lezár teljesen, véletlenszerűen, utóbbi esetben nem látja el többet a védő feladatát, de ez nálad nem valószínű, mert a kisebbik ellenálláson át is max 2mA áramot kap, amit röhögve kibír. Most erősen leegyszerűsítve írtam, ennél azért komplikáltabb a dolog, érdemes utánaolvasni a zener működésének.
3. igen
4. lásd kettővel feljebb.
[ Szerkesztve ]
-
Tankblock
aktív tag
válasz Harcipocok84 #17517 üzenetére
Szia,
alternatíva : [link] p-FET + 100k ellenállás + 10V Zener a biztonság végett (mármint a FET biztonsága végett.) A Load helyére kötöd az ellenállás osztót, Arduinot, ....
Fordított polarítás esetén szépen kikapcsol a FET . Esetleg ebben az irányban lehet visszajelző LED betenni és akkor látszik a hiba....
Release the Beast....
-
PHM
addikt
-
PHM
addikt
válasz Harcipocok84 #17526 üzenetére
Nem fog a dióda megsülni, hiszen a feszültségosztó ellenállásain keresztül
csak olyan kis áramot kaphat, ami nem árt neki.
De ha valami miatt mégis rövidzárat képezne, csak annyi történne, hogy az
arduino 0 feszültséget mérne.
Egy szó, mint száz, nyugodtan bekötheted a zenert, nem tud semmilyen kárt okozni.Ma olyan bizonytalan vagyok... Vagy mégsem?
-
nagyúr
válasz Harcipocok84 #17526 üzenetére
az eddig különálló feszültségmérő áramkör (ami eddig csak az arduino analóg bementéhez kapcsolódott) hozzá fog kapcsolódni a vezérlő teljes áramköréhez a GND miatt
Azt csak te gondoltad, hogy különálló.
-
Tankblock
aktív tag
válasz Harcipocok84 #17644 üzenetére
Sajna nekem nincs, csak 1280 ICm van vagy 5 db eltettem rossz időkre és hát lassan eljön...
Release the Beast....
-
vegyszer
addikt
válasz Harcipocok84 #17644 üzenetére
Nekem "csak" két-két esp32, illetve esp8266, és egy uno pihen...
Más:
A minap az amazon oldalána leltem egy jó "kis" könyvet:
Arduino Cookbook: Recipes to Begin, Expand, and Enhance Your Projects 3rd EditionEsetleg az merült fel bennem, hogy magyar nyelvű könyv van egyáltalán a témában?
"Újságírás az, amit a hatalom nem akar nyomtatásban látni. Minden más csak propaganda." George Orwell
-
nagyúr
válasz Harcipocok84 #19328 üzenetére
Szia! Ha ez egyedi eset volt, akkor bármi lehet. Az EEPROM írás viszonylag hosszú művelet, az is lehet, hogy éppen akkor áramtalanítottad, mikor írt volna, és még egy korábbi értéket kaptál vissza.
Az is lehet, hogy az egyik cella egyik bitje elérte a maximális írási mennyiséget és csendben elromlott. Talán 10ezer írást bír egy ilyen EEPROM cella, te tudod, hányszor írtál bele. Próbáld a hibát reprodukálni, ha tudod melyik cella volt.[ Szerkesztve ]
-
ekkold
Topikgazda
válasz Harcipocok84 #19330 üzenetére
Az EEPROM kb. 10^6 irást bír ki (egymillió). Az olvasás nem számít, akárhányszor olvasható. Megsérülni akkor tud a tartalma, ha írás közben fogy el a táp.
Ha reprodukálható a hiba, akkor azért a szoftverhiba is esélyes. Az EEPROM-ba mentéshez szoktam definiálni egy struktúrát a mentendő adatok számára, ezt használva gyakorlatilag nem lehet elrontani a címzést sem.
[ Szerkesztve ]
Eladó: https://www.hobbielektronika.hu/apro/apro_159350.html
-
cog777
senior tag
válasz Harcipocok84 #19330 üzenetére
Ha fontos az adat amit elmentesz, lehet hogy mentenek melle egy CRC/checksum whatever extra meta adatot es azzal ellenoriznem a beolvasott adatot. Ha hibas, akkor egy alapertek hasznalnek. (esetleg naploznam ezeket az esemenyeket egy sd kartyara, de ez mar nagyon extra)
HP ZBook Studio 15.6 G8 Mobile Workstation - Windows 11
-
#68216320
törölt tag
válasz Harcipocok84 #19330 üzenetére
Lehet, hogy butaság, de mi van olyankor, ha dupla rekordot használsz az íráshoz?
1.a. első rekordba beírod a tartalmat
1.b. visszaolvasod az első rekord tartalmát
1.c. ha klappol, akkor csinálsz egy crc-t, ezt beírod a második rekordba2.a. második rekordba beírod a tartalmat
2.b. visszaolvasod a második rekord tartalmát
2.c. ha klappol, akkor csinálsz egy crc-t, ezt beírod az első rekordbaÍgy hiba esetén (crc error) van egy valid adatod.
-
őstag
válasz Harcipocok84 #19328 üzenetére
A probléma megértéséhez kicsit bele kell mélyedni az EEPROM-ok lelki világába.
Fizikai rétegen egy eeprom írás igazából úgy zajlik, hogy törlődik az összes byte. Ez az általános elképzeléssel ellentétben nem azt jelenti, hogy nullázódik, hanem azt, hogy minden érték 1 lesz. Majd ebből az állapotból szelektíven állít mindent nullára.
Ugyebár te egy viszonylag kicsi tartományon operálsz, tehát a bytejaid (arduino int 2 byte) valahogy így festenek:
0b1000000010010110 (előjelbit, +150 15 maradék biten)
Amikor a dínó írni próbál, átáll erre:
0b1111111111111111
majd elkezd nullázni. Ha azonban nem ér végig brownout miatt például, akkor kapsz a memóriába egy bármilyen számot, ami 32,767 és az általad menteni kívánt szám között szerepel valahol.Ha kritikus információt akarsz menteni, akkor ahogy a többiek írták, mentsd el többször, és vezess ellenőrző összeget a mentésekről, hogy tudd, ki a hibás.
[ Szerkesztve ]
Mások számára a kondi fáradós, nekem farad-os...
-
őstag
válasz Harcipocok84 #19335 üzenetére
A brown-out önmagában azt jelenti, hogy a mikrokontroller olyan üzemi feszültségen kezd működni, ahol már instabillá válHAT. Tehát ezen a tartományon még nem feltétlenül indul újra, de már csinálhat buta dolgokat.
Ezek a buta dolgok magukban foglalnak olyan eseteket is, amikor a feszültség már nem elegendő például egy eeprom lebegő tranzisztorának átkapcsolására.
Kérdésedre válaszolva: EEPROM írás befejezésében nem tud segíteni, inkább abban segít, hogy az írás el se kezdődjön.
Ha az írás előtti pillanatban még nem alacsony a feszültség, akkor azt az egy írási műveletet megszakítatlanul be tudja fejezni. (Megfelelően kondenzátorozott elektronika esetén a brownout feszültség felső határától a blackoutig van annyi energia, hogy egy-egy byte eeprom írást még befejezzen vele).Amikor a brownout detection be van kapcsolva, olyankor a mikrokontroller felismeri mikortól nem kellene pl. EEPROM írásba fogni, és szándékosan reset állapotba teszi magát, így még akkor is újraindul, ha nem kéne, sőt általában beállít egy status bitet is, amiben jelzi magának, hogy az újraindulás oka az alacsony feszültség volt.
Ha nálad nincs bekapcsolva, az pontosan okozhat olyan gondot, hogy a kódfutás megszakítatlan, de az eeprom-ba szemetet írsz, ha nincs meg a kellő tápfeszültséged. Definíció szerint az ilyen állapotokat igyekszik a brownout-detection megakadályozni.
Szerk.:
2.7V lehet kicsi, de akár nagy is. Ez az Atmega328p esetében 10MHz órajelhez a biztonságos feszültség.
Ezt mehet feljebb, 20MHz esetén 4.5V, de lehet akár még alacsonyabb is, ugyanis a chip minimum feszültsége 1.8V a 8MHz-es belső oscillátort használva.
Ha az elterjedt Nano/Uno kártyák valamelyikét használod, akkor azon 16MHz oscillátor lesz, tehát inkább átmennék 4.5V-ra.[ Szerkesztve ]
Mások számára a kondi fáradós, nekem farad-os...
-
nagyúr
válasz Harcipocok84 #19340 üzenetére
Azért ne ess kétségbe, nem áll meg itt a tudomány.
Meg lehet ezt kvázi bolondbiztosra is csinálni.Tegyél egy nagy kondenzátort a táp és a gnd közé, a kondenzátor elé nyitó irányban pedig egy schottky diódát.
Az egyik szabad analóg pinre kösd rá a tápfeszültséget a dióda előtti részről egy áramkorlátozó ellenálláson keresztül. Az 5V tápot osztás nélkül rá tudod kötni, az ellenállás azért kell, hogy bekapcsoláskor ne azon keresztül töltődjön a kondi.
Minden EEPROM írás előtt nézd meg, hogy kap-e még (kívülről) megfelelő tápot a cucc. Ha elég nagy kondit teszel oda, a tápfesz elvétele után még akár pár másodpercig is képes üzemelni, így biztonságosan le tudod állítani. Ez a véletlen brownout-okat is ki tudja küszöbölni (bizonyos szintig), de a megoldás igazából az lenne, ha stabil tápot kapna és nem kapcsolgatná ki senki random módon, ha már fontos automatizált folyamatot vezérel.
-
weiss
addikt
válasz Harcipocok84 #19559 üzenetére
Nyugodtan írd le, aztán a megoldást is, tanuljunk együtt!
I did nothing, the pavement was his enemy!
-
ekkold
Topikgazda
válasz Harcipocok84 #19559 üzenetére
Nem mondanám, hogy rutinos vagyok PID -ben, de a forrasztóállomásomban leprogramoztam a PID szabályzást - és egész jól sikerült.
Eladó: https://www.hobbielektronika.hu/apro/apro_159350.html
-
ReFleXx
addikt
válasz Harcipocok84 #19851 üzenetére
ha eleg egy uart akkor ott a jol bevalt arduino uno ha tobb is kell akkor pl arduino mega, stm32 bluepill vagy esp32
2020-as dakota közmondás: "Intel a csórók AMD-je"
-
nagyúr
válasz Harcipocok84 #19851 üzenetére
Szia! Nem írtad, hogy mekkora sebességre/RAM méretre van szükséged, de a leírt kritériumoknak egy attiny85 is bőven megfelel. 8 lába van, könnyű beépíteni, illetve van belőle olyan modul is, amit USB-n keresztül is lehet programozni (Digispark), itt csak 3 lábat tudsz szabadon használni, cserébe a cucc képes usb eszközöket (mouse, keyboard, midi) emulálni.
5 szabadon felhasználható lába van, 3 analóg, 2 PWM lába van, ICSP (SPI) keresztül lehet programozni, hardveres UART ha jól tudom nincs benne, de szoftveresen megoldható, illetve szoftverből tudsz half-duplex UART-ot is csinálni, tehát 5 lábon 1 pwm, 1 analóg, egy teljes értékű és egy half-duplex UART elfér.[ Szerkesztve ]
-
nagyúr
válasz Harcipocok84 #19854 üzenetére
Sokkal könnyebb lenne, ha elmondanád a feladatot, amit szeretnél megoldani, mert most a gombhoz keressük a kabátot.
A hardveres UART nem igényel processzoridőt magához a kommunikációhoz, robusztusabb, de már egy 8MHz proci is elég gyors ahhoz, hogy gyakorlatilag semmit ne vegyél észre belőle. Persze vannak határai, ha jól tudom talán 57600baud fölött már nem ajánlják, de ha mondjuk 9600b/s sebességgel szeretnél valamivel kommunikálni, akkor teljesen jó. Ellenben problémát jelenthet, ha megszakításokat szeretnél használni.[ Szerkesztve ]
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Alpha Laptopszerviz Kft.
Város: Pécs