Hirdetés

2024. május 4., szombat

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

(#10001) zka67 válasza Scooter86101 (#10000) üzenetére


zka67
őstag

Szia, a 32768Hz es kvarc mindkét lába és a GND közé tegyél 5-10 pF-os kondikat. Nekem ez havi 4-5 mp-es eltérésre csökkentette.

(#10002) Gergosz2 válasza Scooter86101 (#10000) üzenetére


Gergosz2
veterán

Ennyi infóból kevés lesz debuggolni. DS3231-et használok, szerintem 1 év alatt szed össze 10 sec hibát.

Szokásos kérdések: hogy kötötted be, mire, milyen kód fut stb...

[ Szerkesztve ]

Nokia 6030 Hardcore User // I Panic Restaurant by Taito

(#10003) kbhuinfo válasza weiss (#9999) üzenetére


kbhuinfo
tag

Ezzel mar probalkoztam, sajnos nem hozott eredmenyt. Koszonom a javaslatot!

Van egy szint, ami felett nem mész egy bizonyos szint alá...

(#10004) Teasüti válasza kbhuinfo (#9998) üzenetére


Teasüti
nagyúr

Ha csak ujjal hozzáérsz a modul lábaihoz, akkor történik vmi?
"Ha külső áramkör csatlakoztatásakor megfelelően működik" jelenségek általában vagy föld probléma, vagy interferencia. Mondjuk összeszed vmi zavart a vezetékeken, vagy gerjed, stb. Ha oszcilloszkóppal történne ez, akkor egyszerű lenne a megoldás: egy bypass kondi éppúgy, mint a szkóp szondáiban. De multiméternél én speciel nem tudom milyen bemeneti fokozat van és az milyen hatással van a mérendő áramkörre.

Számít az is milyen hosszú és mekkora vezetékkel van összekötve az EPS-vel. Árnyékolt-e a vezeték. Mekkora áramfelvétele van: ha nem mA-es nagyságrendről van szó, akkor feszültségesésre kell méretezni a vezetékeket, mert nagyobb távolságnál kialakulhat eltérő potenciál a tápon (gnd-t is beleértve). GND mindenképpen legyen közösítve a vezérlő és a modul között (ha esetleg nem a vezérlő táplálná a modult), különben nem jó a jel feszültségszintje.

[ Szerkesztve ]

(#10005) ecaddsell válasza kbhuinfo (#9998) üzenetére


ecaddsell
aktív tag

A kérdés pedig: mire van szükség (ellenállás, kondenzátor, stb.), hogy jól működjön az áramkör? Feltételezem, hogy valami hiányzik és a mérés az, ami ezt az űrt betölti

Jó eséllyel árnyékolás az ami hiányzik. De ha nem is ez kellene legyen az első lépés. Az ESP32 nekem pl. bezavarta a GPS vevőt amíg jó távol nem tettem a GPS vevő antennáját.

(#10006) kbhuinfo válasza Teasüti (#10004) üzenetére


kbhuinfo
tag

Koszonom a javaslatokat, GND kozos (alap). Mericskelek es visszajelzek, ha talaltam valamit (6 cm-es vezeteken a 0-3,3V kozotti tartomanyban keves a zavar eselye. Aramfelvetel max. 100 mA, de alapbol 20-25 mA).

Van egy szint, ami felett nem mész egy bizonyos szint alá...

(#10007) Amarton


Amarton
tag

Sziasztok,

Arduino Uno R3-hoz valaki használ tokot?
Az akril vagy a PVC ami a jobb?

http://kodolas.skoda-muszerfal.hu

(#10008) Teasüti válasza kbhuinfo (#10006) üzenetére


Teasüti
nagyúr

Megpróbáltad leválasztani az összes egyéb eszközt - ha van - és csak az esp-t és a modult beüzemelni?
Az ESP 5V vagy 3V lábáról (LDO-nak bírnai kell) megtáplálni a modult. Így a feszültségek tuti jók, hisz ugyanarról megy a vezérlő is.
Amúgy úgy méred, hogy a vezérlővel össze van kötve, vagy méréshez leválasztottad az ESP-ről? Ha utóbbi, akkor a vezérlő húzza le GND-re. Akkor viszont még a szoftver is kérdőjeles.

(#10007) Amarton
Az, h "jobb", az elég relatív. Milyen tulajdonságban jobb?

[ Szerkesztve ]

(#10009) kbhuinfo válasza Teasüti (#10008) üzenetére


kbhuinfo
tag

Megvan a hiba - kontakt. A stab. kondi egyik lába nem érintkezett megfelelően. Megforrasztottam és most minden működik! Köszi a tippeket!

Van egy szint, ami felett nem mész egy bizonyos szint alá...

(#10010) Vladi


Vladi
nagyúr

Megtaláltam álmaim mikrokontrollerét: link. :C

70 ojróé kapok:
- csavaros vezeték rögzítést
- sínes rögzítést
- real time clock
- kijelző
- 3 gomb
- valszeg kínai utánzatnál jobb voltage regulatort

plusz:
- 32 bites arm proc
- flash 256 KB, SRam 32 KB, 48 MHz

Úgy gondlom, hogy ez idális az én kisipari igényeimhez. :C

Ennyi a marketing duma, ami negítavum:

3.3 v io. :O Erről nem nagyon tudok ssr relét hajtani, mármint nem mindet. 5 volt jobb lenne.
Azt írja a doksija, hogy inputban az 5 voltot elviseli. Mennyire lehet ennek hinni hosszabb távon?

Outban meg külső felhúzót kell használni, akkor 5V. :F Mondjuk később lehet mechanikus ipari relét használnék, ahhoz úgyis kell valami kölső megoldás.
ide mit javasolnátok? bjt, vagy mosfet? Inkább utóbbira szavaznék, akkor nagyobb áramerősséget is tudnék kapcsolgatni.

Inputra van már 12V->5V optóm, akkor csinálok egyet outputra is. :))

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!

(#10011) Amarton válasza Teasüti (#10008) üzenetére


Amarton
tag

Használhatóbb, nagyobb védelmet biztosít, robosztusabb. Ilyenekre gondoltam.

http://kodolas.skoda-muszerfal.hu

(#10012) tvamos válasza Vladi (#10010) üzenetére


tvamos
nagyúr

Miért nem egy PLC akkor már?

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#10013) Vladi válasza tvamos (#10012) üzenetére


Vladi
nagyúr

Néztem plc-ket, de:
- nem nagyon ismerem a programozását, műkdöését. Arduinot már legalább láttam műkdöni.
- nagyon drágák nekem. Legolcsóbb is ilyen 3-4x annyi. :Y

De lehet találok valami használtolcsót, akkor kicsit tanulmányozom.

Ebben a cuccban egyedül az 5v io hiánya bosszant. Mostanában errefelé megy a mikrokontroller világ? Előbb utóbb 3.3 voltra vált az egész?

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!

(#10014) Teasüti válasza Vladi (#10010) üzenetére


Teasüti
nagyúr

Nekem tetszik, nem nagyon van ilyen éles használatra előkészített megoldás a piacon gyári burkolattal.
Viszont nem látom rajta az USB portot, ezért azért nagy kár.
Meg kíváncsi lennék hogyan oldották meg az EMI és ESD védelmet. Aligha beszélhetünk ipari megoldásról ezek hiányában.

Ebben a cuccban egyedül az 5v io hiánya bosszant. Mostanában errefelé megy a mikrokontroller világ? Előbb utóbb 3.3 voltra vált az egész?
32 biten már nincsenek 5V-os processzorok. Viszont 5V toleráns és felhúzóval megoldható az 5V-os kimenet, ahogy azt írják is.

(#10011) Amarton
Akril: jó időjárásállóság, bírja az UV-t, a magas hőmérsékletet és ellenáll a legtöbb vegyszernek. Mechanikailag nem kiemelkedő, az ütőmunkája kisebb, viszont jellemzően vastagabbra készítik, emiatt nehezen törik.

PVC: szintén jó UV állóság, jó kémiai stabilitás, emiatt lassan öregszik. Szívós és erős anyag, mérsékelten tűzálló és jó elektromos szigetelő.

[ Szerkesztve ]

(#10015) kbhuinfo válasza Vladi (#10013) üzenetére


kbhuinfo
tag

Altalaban toleransak ezek a kutyuk - velem legalabbis megbocsatoak voltak :)
Siemens LOGO PLC: https://hu.rs-online.com/web/p/logikai-kartyak-es-kiegeszito/8251644/

Van egy szint, ami felett nem mész egy bizonyos szint alá...

(#10016) Vladi válasza Teasüti (#10014) üzenetére


Vladi
nagyúr

Védelmet írnak gyárilag, legalább is adatlap szerint.

Van rajta usb! micro van, a gombok alatti felületen. Nem látszik egyértelműen. A lefelé gomb alatt látszik egy kicsi nyílás, na azaz.

Viszont a képeken látszik az open hardware logó, bár szerintem ez nem annyira szigorú, mint a gpl például. Inkább ilyen gumicsont, én shematikot nem nagyon találtam tőlük. A psu részét azért megnézném. :K

A felhúzót olvastam én is. Akkor a gyári 5v és a 3.3 output közé teszek egy 10K-t és utána a kimenő jelem 5V? Így kell érteni?

(#10015) kbhuinfo:

Hurrá, ez csak 2x annyiba kerül. :DD
Maradok én ezen a vonalon. Úgy érzem, hogy ez a belga cég marketingje pont az én szintemet célozza meg. Már valami összetákoltam arduinoval, kisispari szinten és lépni kéne tovább kevésbé gány megoldásra. Meg legyen olcsó. S nem kell rá sok sallang.

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!

(#10017) Teasüti válasza Vladi (#10016) üzenetére


Teasüti
nagyúr

A felhúzót olvastam én is. Akkor a gyári 5v és a 3.3 output közé teszek egy 10K-t és utána a kimenő jelem 5V? Így kell érteni?
Igen. De azért méretezd max pár mA-re, hisz 6 mA-t ír a portokra! :K
Meg a biztonság kedvéért én open-drain módban használnám a portot: INPUT (külső pullup) és OUTPUT LOW módban. Nem tudom mi történne, ha egy OUTPUT HIGH-ra kapna visszirányú áramot.

(#10018) Vladi válasza Teasüti (#10017) üzenetére


Vladi
nagyúr

Hajaj. Miért van az az érzésem, hogy felhúzónál komplexebb megoldást kell keresnem? :U

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!

(#10019) kbhuinfo válasza Vladi (#10016) üzenetére


kbhuinfo
tag

Valoban nem olcso, de azt tudom, hogy nalam az udvaron uzemel 5 eve hoba-fagyban es meg nem indult ujra :) Szoval siemens es nem valami csirkelabas termek. Amugy a megbizhatosagat tekintve az esp32-es megoldasok is egesz jok!

Van egy szint, ami felett nem mész egy bizonyos szint alá...

(#10020) Vladi válasza Vladi (#10018) üzenetére


Vladi
nagyúr

Pillanat! Ilyen Level-Shifter ic nem létezik? Nem létezik, hogy nem létezik! :Y Na olyat keresgélek most.

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!

(#10021) JóGéza válasza Vladi (#10020) üzenetére


JóGéza
aktív tag

Valami ilyesmire gondolsz?
TXB0104

(#10022) Vladi válasza JóGéza (#10021) üzenetére


Vladi
nagyúr

Igenis uram! :R

Texas Instruments mindent gyárt? :Y

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!

(#10023) quint válasza Vladi (#10022) üzenetére


quint
aktív tag

Itt van például egy olcsó megoldás.
A használathoz segédlet.

(#10024) Teasüti válasza Vladi (#10020) üzenetére


Teasüti
nagyúr

Szintillesztésre én mosfet-eket használok egy marék felhúzóval. De a szintillesztett áramkör is open-drain módban működik. Ha találsz vmi kézzel beültethető olcsó IC-t aminek kisebb a footprint-je mint egy sot-23 fet és mellé két 0805-ös ellenállás, akkor írd meg kérlek! :)

(#10025) Vladi válasza Teasüti (#10024) üzenetére


Vladi
nagyúr

Szivacc? Én találjak, neked? :DDD

Én is néztem ilyen megoldásokat, valamit kapizsgálok is, de:
- túl sok alkatrészt kéne rakosgatni, arra nincs kapacitásom
- a nagy Scottnál én úgy értettem a mosfet videót, hogy nagyobb frekvencián már vacakul működik. :F

Egyébként nekem nincsenek ilyen méretbeli igényeim. Én a Texasos CD4050BE -t nézegetem most. az dip-16-os. Az túlnagy? :D

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!

(#10026) Teasüti válasza Vladi (#10025) üzenetére


Teasüti
nagyúr

Ha már úgyis keresgélsz! :D
Neeem, az túl nagy. :))
Nekem vmi két csatornás ic elég lenne. :DD

De miért nem jó az 5V portra kötése?

[ Szerkesztve ]

(#10027) JóGéza válasza Vladi (#10022) üzenetére


JóGéza
aktív tag

Annyira nem különleges igény ez. A mikrovezérlők egyre kisebb feszültségről mennek.
Ezt az illesztőt itt ajánlotta valaki. Az ebay-en árulnak ezzel kész megoldásokat. Van nyolc bites változat is.

(#10028) JóGéza válasza Teasüti (#10026) üzenetére


JóGéza
aktív tag

(#10029) Amarton


Amarton
tag

Sziasztok,

Elkezdtem a kódolást egy Uno boarddal.
Az lenne a feladat, hogy soros porton beírok betűt. pl. "p", akkor írja ki, hogy piros, majd 0-9-ig ha beírok egy számot, akkor kapcsolja be a piros LED-et.
Annyi megvan a kódból, hogy ha leütöm a betűt, akkor megszakításból lekezelem a soros portot, de egyelőre csak 100%-ra tudom a LED-et beállítani, mivel fogalmam sincs, hogyan lehetne azt lekezelni, hogy a "p" betű után kérjen be egy számot.

const int red = 9; // the pin that the LED is attached to
const int green = 8; // the pin that the LED is attached to


void setup() {
// initialize the serial communication:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}

pinMode(red, OUTPUT);
pinMode(green, OUTPUT);
}

void serialEvent() {

// check if data has been sent from the computer:
if (Serial.available() > 0) {
int inChar = Serial.read();

switch (inChar) {
case 'p':
Serial.println("piros");
analogWrite(red, 255);
analogWrite(green, 0);

break;
case 'z':
Serial.println("zöld");
analogWrite(green, 255);
analogWrite(red, 0);
break;

case 'n':
Serial.println("narancs");
analogWrite(red, 255);
analogWrite(green, 255);

break;
case 'f':
Serial.println("fehér");
analogWrite(red, 0);
analogWrite(green, 0);

break;

}
}
}

void loop()
{

}

http://kodolas.skoda-muszerfal.hu

(#10030) JozsBiker válasza Amarton (#10029) üzenetére


JozsBiker
aktív tag

Újabb karaktert újabb Serial.read(); utasítással tudsz beolvasni :-)

(#10031) Tankblock válasza Amarton (#10029) üzenetére


Tankblock
aktív tag

Hello

[link]

azért van még pár lehetőség:

readBytes()
readBytesUntil()
readStringUntil()
readString()

Vagy olvasod a következő karakterig amíg "\n" nem jön, majd parsolod....

Release the Beast....

(#10032) Teasüti válasza Amarton (#10029) üzenetére


Teasüti
nagyúr

C++ függvények közt van egy olyan, h atoi().
Ezzel a legegyszerűbb.

(#10033) gyapo11 válasza Amarton (#10029) üzenetére


gyapo11
őstag

Furcsa nekem, hogy a loop üres. Oda kellene tenni a beolvasást, majd ha bejött a p, akkor újabb beolvasást. Közben persze egy változó is kell, ami jelzi, hogy most mit olvas. Pl. a változó=1, akkor várja a p-t, ha bejött, akkor változó=2, és most már a számot várja.

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

(#10034) Amarton válasza gyapo11 (#10033) üzenetére


Amarton
tag

A loop azért üres, mert jelenleg az egész soros kommunikáció megszakításból megy. Szerintem ezzel nincs baj.

http://kodolas.skoda-muszerfal.hu

(#10035) Aryes válasza szente (#9993) üzenetére


Aryes
nagyúr

Véletlenül sem 3,3V-os pro micro-d van, és arra próbálsz 5V-osra fordított kódot tölteni, ugye?

(#10036) kbhuinfo válasza Amarton (#10029) üzenetére


kbhuinfo
tag

Allapotgepet kell keszitened es az inputot annak fuggvenyeben kezelni. Olvass utana, programozas 1.

"if (Serial.available() > 0)" helyett eleg "if (Serial.available())"

Van egy szint, ami felett nem mész egy bizonyos szint alá...

(#10037) Amarton válasza kbhuinfo (#10036) üzenetére


Amarton
tag

Közben sikerült megcsinálnom.
Működik.

http://kodolas.skoda-muszerfal.hu

(#10038) kbhuinfo válasza Amarton (#10037) üzenetére


kbhuinfo
tag

Grat ;)

[ Szerkesztve ]

Van egy szint, ami felett nem mész egy bizonyos szint alá...

(#10039) tvamos


tvamos
nagyúr

Hello!
Az a kinom, hogy az egyik taskbol szeretnem triggerelni a masikat.
Csinaltam egy valtozot, ami "volatile".
Raallitottam az egyik taskot, hogy figyelje, ha a valtozo 1, csinalja meg, amit kell, es utana allitsa 0-ba.
A loop-bol sikerul is triggerelni a taskot, szepen vegrehajtja, amit kell.
Sajnos a masik taskbol nem megy ez.
Mi lehet a problema?

Jut is eszembe...
ESP32
Arduino framework
xTaskCreate-tel vannak letrehozva a taskok

[ Szerkesztve ]

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#10040) Tankblock válasza tvamos (#10039) üzenetére


Tankblock
aktív tag

Hello,

Mivel állítottad rá a figyelésre?

const static int TASK_0 = BIT0;
const static int AVAIL_BIT = BIT1;
const static int BUSY_BIT = BIT2;

static EventGroupHandle_t event_Handler = nullptr;

/// setupba:

event_Handler = xEventGroupCreate();

// várakozó taskba:

EventBits_t uxBits;
const TickType_t xTicksToWait = 10000 / portTICK_PERIOD_MS;
uxBits = xEventGroupWaitBits(event_Handler, TASK_0 | AVAIL_BIT , pdTRUE,xTicksToWait);
if(uxBits & (TASK_0 | AVAIL_BIT ) == (TASK_0 | AVAIL_BIT )) {
// ide jön a kód
}

//Kód jelző taskba

xEventGroupSetBits(event_Handler,TASK_0);

vagy az xQueue használd

Release the Beast....

(#10041) tvamos válasza Tankblock (#10040) üzenetére


tvamos
nagyúr

if

Nekem amit irsz totalisan kinai...

[ Szerkesztve ]

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#10042) tvamos válasza Tankblock (#10040) üzenetére


tvamos
nagyúr

Van valami leiras arrol, amit javasolsz?
Ez a binary semaphore jo lehet?
Vagy mit nezzek, ami a legegyszerubb?

A queue nekem nagyon bonyolultnak tunik.

Ennyi van most:
void SendNikonCode( void * param ) {
while (1) {
if ( shutState!=0 ) {
Serial.println( "TRIGGER SHUTTER!!!" );
shutState = 0;
}
}
// END task
vTaskDelete( NULL );
}

Meg ugye globalkent letrehozva: volatile char shutState = 0;

[ Szerkesztve ]

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#10043) tvamos válasza Tankblock (#10040) üzenetére


tvamos
nagyúr

Ezt pl. ertem nagyjabol: [link]
Azt csinalja ez, amit akarok?

Amit en irtam, az miert nem jo? Azt nem ertem...

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#10044) Tankblock válasza tvamos (#10043) üzenetére


Tankblock
aktív tag

Hello

Kódot tudnál linkelni pl githubról?

Ha nem látom a kódot debuggolni sem tudok.
Aminek nézzél utána az a Design Patternek. Mennyi helyről jöhet a szignál, lehet e olyan h 1x többhelyről? Hányszor kell akkor kell akkor megcsinálni?
FreeRTOS van néhány megoldása ezen problémákra.

Lehet simán az is h a másik taskod priorítása alacsoy és sosem fut.

A megoldásod CPU pazarló és nem engedi futni a többi taskot csak 100 ms enként talán.
Az enyém amíg a feltételek nem adottak nem foglal CPU erőforrást.

Semaphor vagy Mutex is jó lehet, ott is van néhány Deadlock -nak nevezett csapdahelyzet.

[ Szerkesztve ]

Release the Beast....

(#10045) tvamos válasza Tankblock (#10044) üzenetére


tvamos
nagyúr

Ilyen lett: [link]
De mar atirtam a video alapjan, es mukodik... nagyjabol.

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#10046) Amarton


Amarton
tag

float voltage= sensorValue * (5.0 / 1023.0)
Ennek a sornak az eredménye két tizedes pontossággal írja ki az eredményt.
Hogyan tudom ezt kettőnél több tizedesre növelni, illetve 1 tizedesre csökkenteni?

http://kodolas.skoda-muszerfal.hu

(#10047) kbhuinfo válasza Amarton (#10046) üzenetére


kbhuinfo
tag

Furcsallanam, ha a valtozoban nem lenne meg a teljes ertek - a kiiras teljesen mas lapra tartozik. Hogyan akarod es hol megjeleniteni?

Van egy szint, ami felett nem mész egy bizonyos szint alá...

(#10048) Amarton válasza kbhuinfo (#10047) üzenetére


Amarton
tag

4x16-os LCD panelen, lcd.print() függvénnyel.

http://kodolas.skoda-muszerfal.hu

(#10049) Amarton válasza kbhuinfo (#10047) üzenetére


Amarton
tag

Megoldódott. Az lcd.print(voltage,3); működik 3 tizedes jegyik.

http://kodolas.skoda-muszerfal.hu

(#10050) Tankblock válasza tvamos (#10045) üzenetére


Tankblock
aktív tag

Hello

Bocs céges neten nincs Dropbox......
Igyekszem amint lesz időm...
Mit jelent a nagyjából?

Release the Beast....

Copyright © 2000-2024 PROHARDVER Informatikai Kft.