Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   371 / 845
(#) RoliNyh válasza Bakman hozzászólására (») Aug 6, 2017 /
 
50cm és sebesség nemigazán számít, lehet a leglassabb 4800kbps is...
(#) Bakman válasza RoliNyh hozzászólására (») Aug 6, 2017 /
 
Az túl sok az I2C számára, UART-hoz bőven jó, 9600 baud sebességre (többet is bírna bőven, már ha kell).
A hozzászólás módosítva: Aug 6, 2017
(#) vargham válasza RoliNyh hozzászólására (») Aug 6, 2017 /
 
Meg lehet oldani, de én biztosan nem vacakolnék egyedi barkácsolással a sorosporton.
Ha olcsón, egyszerűen, Arduino hardverrel, akkor szerintem RS-485, hozzávaló illesztő hardver.

Ha csak az Arduino szoftver környezethez ragaszkodsz, a hardverhez nem, akkor STM32F103 és CAN busz. Ebben a mikrokontrollerben van CAN periféria, egy buszmeghajtón kívül semmi mást nem kell hozzátenned.
STM32F103 board HESTORE

De ha közvetlenül Kínából rendeled, akkor csak 1,7 dollár darabja.
Arduino STM32 fórum
Hivatalos, ST Microelectronics Arduino core
(#) tbarath válasza goreny hozzászólására (») Aug 6, 2017 /
 
Igen I2C tipikusan jó lehet erre ha kicsi a távolság. Nagyobb távolságok esetén inkább a onewire protokoll, az erre van kitalálva. Bár ott jellemzően master kódok vannak megírva, de létezik slave implemetáció is: Link
(#) Kovidivi válasza tbarath hozzászólására (») Aug 6, 2017 /
 
Szerintem optocsatolóval leválasztott soros kommunikációról van szó, ha ez igaz, akkor az I2C nem jöhet szóba.
Miért kellene STM32-t vennie a kollégának, ha ott van már az asztalán a sok IC?
A mesternek meg kell szólítania a szolgát, az első 8bit lenne a szolga azonosítója, a többi az adat. Innentől csak az a szolga válaszolhat. Ezt fogja látni az összes szolga is, így egy beszélgetés kész parancs/üzenet, vagy a következő szolga megszólítása nem okoz gondot. A szolgák amíg hallgatnak, nem terhelik be a vonalat (nem is foglalják). Ilyenkor bárki adhatna. Nem hinném, hogy a sok szolga annyira beterhelné a vonalat, hogy meghajtó kelljen. Áram nem folyik, csak a vonal kapacitása növekszik a szolgák számának összefüggésében, de ilyenkor csak lassítani kell a kommunikációt, hogy a jelek fel tudják venni az értelmezhető feszültség szinteket. 9600bps nem okozhatna gondot szerintem.
(#) RoliNyh válasza Kovidivi hozzászólására (») Aug 6, 2017 /
 
Ha megvagyok a kapcsolással, majd felteszem aztán ránézhettek miről van szó pontosan...
(#) vargham hozzászólása Aug 6, 2017 /
 
Ha marad a sima UART: Mindenféleképpen meg kell szólítani az eszközöket. Tehát a master Tx rá van kötve az összes slave Rx-re. Fordítva viszont nem. Pontosabban a vezetékek össze vannak kötve, de minden inaktív slave Tx lábat bemenetnek kell konfigurálni. Szoftveresen megoldható, hogy az összes slave Tx lába BEMENET, amíg nem kap parancsot, és akkor, csak akkor állítja át kimenetnek.

Az UART ugyanis nem busz, így ha több eszköz Tx-e össze van kötve, akkor egyik eszköz sem fog tudni szintet változtatni rajta, mert a több (inaktív) nem negedi. Ezért kell a Tx-et átállítani bemenetnek minden inaktív, vagyis csak hallgatózó eszközön.

Ezt a megoldást nem támogatja az Arduino rendszer. Ráadásul elég csúnya gányolás, az UART-ot nem erre találták ki. Ott van fillérekért akár az RS-485, akár a CAN, amik buszok, és ilyen esetekre fejlesztették őket.
(#) RoliNyh válasza vargham hozzászólására (») Aug 6, 2017 /
 
Sajna ma már nem leszek kész, és holnap nem vagyok gépnél, de utánna feltöltöm a kapcsolási rajzot, és az elméletet, én hogyan agyaltam ki, aztán folytatjuk...
Köszi...
(#) vargham válasza RoliNyh hozzászólására (») Aug 7, 2017 / 1
 
Összefoglalva:
Egy buszon csak az egyik állapotot állítják be aktívan a résztvevők, a másik álapot magától áll be. Tipikusan ilyen a CAN, I2C, stb., ahol minden adó open collector (FET esetén open drain), és a busz van felhúzva magas szintre. Tehát a busz a felhúzó ellenállás miatt mindig magas szinten van, amíg valamelyik résztvevő le nem húzza földre.
Ezzel ellentétben az UART egy pont-pont közötti összeköttetés, ahol az adásvonalat a küldő fél AKTÍVAN kapcsolja fel és le egy két FET-es push-pull áramkörrel. Ha két ilyet összekötsz, akkor jobb esetben csak nem működik a kommunikáció, rosszabb esetben a zárlat miatt megdöglenek a résztvevők, lásd belső védődiódák (14.1, 75. oldal).

Megoldási lehetőség: Az összes slave Tx-et össze éseled. Továbbra is figyelned kell, hogy egyszerre csak egy eszköz adjon a buszon (különben összekeveredik az adás), de elektronikailag lehetséges lesz, hogy akármelyik résztvevő tudjon adni. 16 bemenetű és kaput még nem láttam. Használhatsz két nyolcast, amit még pluszban éselsz, ez összesen három IC. (De ezzel megint ott vagyunk, hogy újra feltaláltál magadnak egy buszt.)
De ezt már leírta Bakman fórumtárs is

Bennem további kérdések is felmerültek:
1. Miért ragaszkodsz az UART-hoz?
2. A BT modult tudod programozni, hogy csak akkor adjon, amikor erre kéred?
3. Egyáltalán, minek ennyi mikrokontroller? Ha elmesélnéd, hogy mit akarsz megvalósítani (nem hogyan), akkor találhatnánk közösen valami egyszerűbb megoldást.
(#) kukelyk hozzászólása Aug 7, 2017 /
 
Üdv mindenkinek!
Egy egyszerű locsolórendszer vezérlőt barkácsolnék, ami 2-4 (12V-os) mágnesszelepet kapcsolgatna.
(Igazából csak annyi a feladat, hogy amíg a kútban van víz (és a szivattyú dolgozik), 2-3 percenként váltsa át az egyik ágat a következőre, lehet, hogy ágyúval lőnék verébre?)
Ehhez gondoltam egy arduino-s megoldásra. Az e-bay-en nézegettem kezdőcsomagokat, de nem igazán tudom eldönteni, hogy melyik a tuti. Esetleg kell még hozzá plusz egyéb alkatrészt is venni, relék, stb?
Köszi a segítséget előre is.
(#) roland9 hozzászólása Aug 7, 2017 /
 
Sziasztok!

Egy újabb problémába ütköztem, a gondom az lenne, hogy adott egy arduinoMega2560 és hozzá egy 3.2 kijelző (HX8357C) ha nem színezem meg a karaktereket akkor rendesen működik, viszont ha színesen szeretnék kiírni valamit akkor a karakter változásakor nem tűnnek el a pixelek, és olvashatatlan lesz a kiírás (csatolt képek). Tudna valaki valami megoldást?

  1. #include <TFT_HX8357.h>
  2. TFT_HX8357 tft = TFT_HX8357();
  3. const int sensorPin = A10;
  4. int RawValue = 0;
  5. double Voltage = 0;
  6. int tempC = 0;
  7.  
  8.  
  9. void setup() {
  10.   // put your setup code here, to run once:
  11.   tft.init();
  12.   tft.setRotation(3);
  13.   tft.fillScreen(TFT_BLACK);
  14. }
  15.  
  16. void loop() {
  17.   // put your main code here, to run repeatedly:
  18.   RawValue = analogRead(sensorPin);
  19.   Voltage = (RawValue / 1023.0) * 5000;
  20.   tempC = ((Voltage-500) * 0.1)-5;
  21.   tft.setTextColor(TFT_BLUE);
  22.   tft.setCursor(120,120);
  23.   tft.setTextSize(6);
  24.   tft.print(tempC);
  25.   tft.setCursor(200,100);
  26.   tft.setTextSize(3);
  27.   tft.print("o");
  28.   tft.setCursor(220,120);
  29.   tft.setTextSize(6);
  30.   tft.print("C");
  31. }
(#) kapu48 válasza roland9 hozzászólására (») Aug 7, 2017 /
 
Törölni kel előbb a hátteret:
  1. ...
  2.    tft.setTextSize(6);
  3.   tft.setTextColor(TFT_BLUE);
  4.   tft.setCursor(120,120);
  5.  
  6.   tft.print("  ");  // 2 szóköz, ha csak 2 karakter változik
  7.   tft.setCursor(120,120);
  8.   tft.print(tempC);
  9.   tft.setCursor(200,100);
  10.   tft.setTextSize(3);
  11.   tft.print("o");
  12. ...
A hozzászólás módosítva: Aug 7, 2017
(#) roland9 válasza kapu48 hozzászólására (») Aug 7, 2017 /
 
sajnos nem segített rajta
de ha nincs szín akkor meg csinálja magától a törlést?

  1. #include <TFT_HX8357.h>
  2. TFT_HX8357 tft = TFT_HX8357();
  3. const int sensorPin = A10;
  4. int RawValue = 0;
  5. double Voltage = 0;
  6. int tempC = 0;
  7.  
  8.  
  9. void setup() {
  10.   // put your setup code here, to run once:
  11.   tft.init();
  12.   tft.setRotation(3);
  13.   tft.fillScreen(TFT_BLACK);
  14. }
  15.  
  16. void loop() {
  17.   // put your main code here, to run repeatedly:
  18.   RawValue = analogRead(sensorPin);
  19.   Voltage = (RawValue / 1023.0) * 5000;
  20.   tempC = ((Voltage-500) * 0.1)-5;
  21.   tft.setTextSize(6);
  22.   tft.setTextColor(TFT_BLUE);
  23.   tft.setCursor(120,120);
  24.   tft.print("  ");
  25.   tft.setCursor(120,120);
  26.   tft.print(tempC);
  27.   tft.setCursor(200,100);
  28.   tft.setTextSize(3);
  29.   tft.print("o");
  30.   tft.setCursor(220,120);
  31.   tft.setTextSize(6);
  32.   tft.print("C");
  33. }
(#) Kera_Will válasza kukelyk hozzászólására (») Aug 7, 2017 /
 
Igen jól látod, ágyúval verébre .
Erre elég a klasszikus "futófény" vezérlő áramkör is.
Kell egy pár perces nagyságrendű időzítő (pl.:cd 4060) ami pl.: a CD4017 számlálót lépteti .
A számláló kimenetein ott vannak tranzisztorok amik mágnes szelepek tekercseit húzzák meg engedik el.
A cd4060 oszcillátor és bináris számlánc egyben kb.: 2^14 (16384) osztásra képes [3as lába].
tehát ha kb 3 percet kell időzíteni akkor az 180 sec kb.: 90Hz oszcillátort kell építeni a cd 4060ból (16384 / 180 ~ 90).
Vagy ha a hálózati 50Hz veszed alapul akkor azt számlálva kb.: (16384 / 50 Hz = 327 sec) 5,4 perces időzítőt kapsz
Ekkor elég egy CD4020 is ami pont 14 bites számláló belső oszcilátor nélkül.
A hozzászólás módosítva: Aug 7, 2017
(#) Kera_Will válasza Kera_Will hozzászólására (») Aug 7, 2017 /
 
Ha sok a maximális 5 perces idő akkor felezheted a 8192 vagy negyedelheted a 4096 osztású kimenet használatával.
A hozzászólás módosítva: Aug 7, 2017
(#) kukelyk válasza Kera_Will hozzászólására (») Aug 7, 2017 /
 
Köszi.
Erre gondoltál?
azt vajon meg lehetne, csinálni, hogy 2-3 mp átfedés legyen a nyitás és zárás közt? (azaz a következő nyitása után 2-3 mp-cel zárjon csak be az aktuálisan nyitott).
(#) Kera_Will válasza kukelyk hozzászólására (») Aug 7, 2017 /
 
Ezt ne mértem miért kell kitartani az időt pluszban ?
Pl.: lehet a vezérelt tranzisztor bázis körébe tenni egy kondenzátor ellenállás dióda kört amin keresztül kisül lassan a bázis körben a kondi .
Igen hasonlóra csak 555 nélkül.
Az 555 már a hosszú időzítésekre kevésbé stabil és asszimetrikus ezért emlegettem a számlánc és oszcillátor (4060).
A hozzászólás módosítva: Aug 7, 2017
(#) kukelyk válasza Kera_Will hozzászólására (») Aug 7, 2017 /
 
A szivattyút egy nyomásesés-figyelő kütyü indítja/állítja le. No most ha minden szelep zárva van, a szivattyú leáll. hogy ne kapcsolgassa le-föl a szivattyút, így biztosítanám, hogy mindig legyen nyitott szelep.
Jelenleg két mágnesszelepet kellene vezérelni. Ha később netán egy harmadikat is beépítenék, akkor az elektronikát is bővíteni kellene. Vagy eleve több kimenetet kéne kialakítani, de ez esetben valahogy a nem használt kimeneteket ki kellene iktatni, hogy a nem használt ágakat ne próbálja kapcsolgatni, mert akkor megint a szivattyút kapcsolgatnám le-föl.
(#) Kera_Will válasza kukelyk hozzászólására (») Aug 7, 2017 /
 

OK értem rátartás miért kell.
(4017 reset lába átköthető bármelyik kimenetére ezt kell bővíthetően megoldani átkötéssel.)
(#) kukelyk válasza Kera_Will hozzászólására (») Aug 7, 2017 /
 
Ehhez még az jutott eszembe, hogy ne kapcsolgassa a szelepet állandóan, lévén a kútban nem emelkedik a vízszint olyan gyorsan, hogy pl. kétóránként 20 percig menjen, majd pihenjen zárt szelepekkel? (esetleg valami potival szabályozható időtartamokkal?) Lehet mégis az arduino-s megoldással érdemes lenne próbálkozni hátha még valami okosság eszembe jut?
(#) Kera_Will válasza kukelyk hozzászólására (») Aug 7, 2017 /
 
Előszőr inkább a rendszer terv elgyen meg és azok a perifériák amik biztosan bírják az
"extrém" környezeti változásokat is !
Amíg ezek nincsennek meg addig felesleges bármilyen analóg vagy uC áramkörben gondolkodni.Hiába tudsz szoftvert módosítani bármikor ha a külvilágban lévő beavatkozó szerveid nem megfelelőek a feladatuk ellátására!
TERV legyen és ne ötletelés !
A hozzászólás módosítva: Aug 7, 2017
(#) kukelyk válasza Kera_Will hozzászólására (») Aug 7, 2017 /
 
Igazad van, eddig még nem terveztem hasonlót se, talán ezért gondolkodnék inkább az arduinos megoldásban. a mágneszelepek és a szivattyú kitűnőek, de az élettartamukat az állandó ki-be kapcsolgatás lerövidítené, amit lehetőleg megelőznék. A szoftvert meg könnyebb módosítani, mint az elektronikát. Ráadásul ebben még gyakorlatom is van, mégha más nyelven is mint az arduino-é. És ha később variálok valamit, akkor csak az új szelep(ek)hez szükséges drótozás kell.
(#) Kera_Will válasza kukelyk hozzászólására (») Aug 7, 2017 /
 
Arduino családból erre bőven elég lesz a Nano is.
(#) kapu48 válasza roland9 hozzászólására (») Aug 7, 2017 /
 
Szerintem ez a sor rossz:
  1. TFT_HX8357 tft = TFT_HX8357();

Elég lenne csak így:
  1. TFT_HX8357 tft;

Létrehozod a:TFT_HX8357 osztályt, és a "tft" nevet adod neki.
(#) wbt válasza kukelyk hozzászólására (») Aug 7, 2017 /
 
Szerintem is vegyél egy NANO-t, USB-n azonnal megy fel a program (nem kell programozó) meg egy adapterpanelt, amin ki van sorkapcsokra vezetve minden láb, + 4-8-as relémodul és már majdnem készen is vagy. TTL szerintem manapság felejtős (speciális, 100 évig változatlan feladatnál talán, de a 8-lábú uC 100ft alatt van, a NANO is megáll 1000Ft alatt és bármikor változtathatsz a működésen).
(#) RoliNyh válasza roland9 hozzászólására (») Aug 7, 2017 / 1
 
Javítsatok ki ha tévedek, de a képernyőtörlésre van külön függvény.:
tft.clrScr()
vagy valami hasonló, most fejből nem tudom nekem hogy van a kódomban.
Viszont a te kódodban ilyet sehol nem látok...
(#) roland9 hozzászólása Aug 7, 2017 /
 
Sziasztok!
Nagyon szépen köszönöm a segítségeteket RoliNyh, kapu48, de sajnos egyik megoldás sem segített, viszont megvan a megoldás ami így néz ki:

tft.setTextColor(TFT_BLUE, TFT_BLACK);
(#) kukelyk válasza wbt hozzászólására (») Aug 7, 2017 /
 
tényleg egyszerűnek tűnik.. aszem utánajárok. lehet keresek valami tanfolyamot
(#) JZoli válasza kukelyk hozzászólására (») Aug 8, 2017 /
 
"A szivattyút egy nyomásesés-figyelő kütyü indítja/állítja le." Mit csinálsz, ha közben kifogy a kútból a víz? Figyelni kellene a kútban a víz szintjét, mert, ha "menet közben" elfogy a víz, a szivattyúval gondok lesznek! Főleg, ha állandóan nyomás alatt akarod tartani a rendszert!
(#) kukelyk válasza JZoli hozzászólására (») Aug 8, 2017 /
 
A búvárszivattyú figyeli, van úszókapcsolója
Következő: »»   371 / 845
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem