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   549 / 855
(#) Kera_Will válasza VorosEgyes hozzászólására (») Aug 7, 2019 /
 
pH mérő nem biztos hogy olyan jó dolog folyamatosan "bizsergetni" a vizet élő szervezetek közelében.
Valszin az elektródák se szeretnék annyira a folyamatos üzemet a lerakódasok biztos befolyasolnák a mérést .Mekkora pH eérték mozgást engedsz meg tized vagy egész változaskoat?
(#) VorosEgyes válasza Kera_Will hozzászólására (») Aug 7, 2019 /
 
Teljesen értelek, ez a slave uC megoldás lesz a jó. A busz helyett 433MHz-es rádió jelek?
(#) VorosEgyes válasza Kera_Will hozzászólására (») Aug 7, 2019 /
 
pH mérőnek még nem jártam eléggé utána, de ott nem is gondoltam napi 1-2 mérésnél többre, annyi bőven elég.
(#) Kera_Will válasza VorosEgyes hozzászólására (») Aug 7, 2019 /
 
Az RF (868 MHz talán még kevésbé zsúfolt ilyesmik) is lehet jó átviteli csatornának ... de a mérőátalakítóid egy része mégis csak valami saját buszon beszélget a uC felé.

Ugyanúgy kell egy sajátos protokol az RF csatornára is amivel lekérdeződnek/beszélgetnek az eszközök. Vannak kész RF könyvtárak (egyszerűbb/bonyolultabb) is erre hogy adatokat küldjenek és fogadjanak az adott típusú RF modulhoz. A beszélgetést neked kell megszervezni köztük.(master szólítgatja 1esével és vár majd tovább megy , a kliensek egymás után x időnként szólalnak meg és a mester rögzíti )
Csak egy irányú a beszélgetés sok adó és 1 vevő modul (master/gyűjtő). Az adók (slave/források) időzítve körbe járnak majd csend ... a vevő pedig rögzíti a vett adatokat .
Ez egyszerűnek tűnik , olcsónak is ... kb 5 10 20 percenként elég lehet ha meg meg szólalnak az adók kb max 1-5 másodpercre adási baudrate-től függően (nem kell gyos elég a 300-1200 bit/sec bőven) .
(persze ha havária van "üvegtörés" , túlfolyás stb. akkor riaszthat azonnal , amúgy nem túl gyors folyamatok zajlanak egy párszor 10-100 liternyi vízben )
Az oda-vissza beszélgetés adóvevő RF modulokat követel és azok drágábbak.
A beszélgetést bárki kezdheti így a slave is master is ... az átvitt adatokat nyugtázhatják is az állomások egymás közt.Ekkor az ütközéseket és egyéb hibás csomag átvitelt is le kell kezelni.
Mint látod lehet ezt részben bonyolítani vagy egyszerűsíteni is .
(#) vyky hozzászólása Aug 7, 2019 /
 
Sziasztok.
Ennek az értelmezésében kérném a segítségeteket.
  1. for (unsigned long i = 0; i < totalSteps; i++) {
  2.     PORTD |= (1 << 2);
  3.     delayMicroseconds(stepPeriodmicroSec);
  4.     PORTD &= ~(1 << 2);
  5.     delayMicroseconds(stepPeriodmicroSec);

PORTD az tiszta.
De a következőket nem értem.
Ez azt jelenti,hogy delayMiroseconds alatt változtatja a magas,és az alacsony szintet?
A hozzászólás módosítva: Aug 7, 2019
(#) Kovidivi válasza Kera_Will hozzászólására (») Aug 7, 2019 / 1
 
Ha nem túl nagy a táv, én lehet infra vevővel beszélgetnék. Jó nagy teljesítménnyel fellövöd a plafon felé a jelet, onnan mindenhova verődik, vagy lehet célzott is az adás. Jó kis hagyományos, régimódi megoldás.
(#) Kera_Will válasza Kovidivi hozzászólására (») Aug 7, 2019 /
 
Akár azt is lehetne ... terepi elrendezést nem ismerjük jelenleg
A hozzászólás módosítva: Aug 7, 2019
(#) benjami válasza vyky hozzászólására (») Aug 7, 2019 /
 
Javasolnám valami C nyelvről szóló könyv tanulmányozását, mert ezt azért illene értelmezni, ha írni is szeretnél valami programot.
1.sor: Egy ciklus, ami annyit fog tenni, hogy a 2..5 sorig (illetve a } -ig) tartó programsorok annyiszor kerülnek végrehajtásra, amennyi érték a totalSteps nevű változóban van.
2: PORTD.2 lábat 1-re állítja (feltéve, ha kimenetre van konfigurálva)
3: Várakozik annyi microsec-et, amennyi a stepperiodmicroSec nevű változóban van
4: PORTD.2 lábat 0-ra állítja
5: Lásd 3. sor
(#) vyky válasza benjami hozzászólására (») Aug 7, 2019 /
 
Szia.
Köszönöm a segítséget,olvasom ,és tanulom.
Akkor ez a pin egy Mega-n a 21 -es ,ha jól értelmezem?
Ezt nem írhatom á simán
digitalWrite(21, HIGH);
digitalWrite(21, LOw);-ra?
Persze itt a 21-t most csak beírtam.
(#) mateatek válasza vyky hozzászólására (») Aug 7, 2019 /
 
Átírhatod, de amíg a PORTD parancsod azt hiszem 2 órajel ciklus alatt végrehajtódik, addig a digitalWrite() parancsnak 60 ciklus kell. Ha a programban szükség van a portok gyors kezelésére, akkor ne használjad a digitalWrite parancsot.
(#) vyky válasza mateatek hozzászólására (») Aug 7, 2019 /
 
Szia. Köszönöm.
Akkor a neten talált programot teljesen át kell írjam
Valahogy
(#) mateatek válasza vyky hozzászólására (») Aug 7, 2019 / 1
 
Parancsoljál, egy kis kung-fu megához:

  1. // --- DIGITAL WRITE: HIGH  ---
  2.  
  3.  PORTE |= _BV (0); // digitalWrite (0, HIGH);
  4.  PORTE |= _BV (1); // digitalWrite (1, HIGH);
  5.  PORTE |= _BV (4); // digitalWrite (2, HIGH);
  6.  PORTE |= _BV (5); // digitalWrite (3, HIGH);
  7.  PORTG |= _BV (5); // digitalWrite (4, HIGH);
  8.  PORTE |= _BV (3); // digitalWrite (5, HIGH);
  9.  PORTH |= _BV (3); // digitalWrite (6, HIGH);
  10.  PORTH |= _BV (4); // digitalWrite (7, HIGH);
  11.  PORTH |= _BV (5); // digitalWrite (8, HIGH);
  12.  PORTH |= _BV (6); // digitalWrite (9, HIGH);
  13.  PORTB |= _BV (4); // digitalWrite (10, HIGH);
  14.  PORTB |= _BV (5); // digitalWrite (11, HIGH);
  15.  PORTB |= _BV (6); // digitalWrite (12, HIGH);
  16.  PORTB |= _BV (7); // digitalWrite (13, HIGH);
  17.  PORTJ |= _BV (1); // digitalWrite (14, HIGH);
  18.  PORTJ |= _BV (0); // digitalWrite (15, HIGH);
  19.  PORTH |= _BV (1); // digitalWrite (16, HIGH);
  20.  PORTH |= _BV (0); // digitalWrite (17, HIGH);
  21.  PORTD |= _BV (3); // digitalWrite (18, HIGH);
  22.  PORTD |= _BV (2); // digitalWrite (19, HIGH);
  23.  PORTD |= _BV (1); // digitalWrite (20, HIGH);
  24.  PORTD |= _BV (0); // digitalWrite (21, HIGH);
  25.  PORTA |= _BV (0); // digitalWrite (22, HIGH);
  26.  PORTA |= _BV (1); // digitalWrite (23, HIGH);
  27.  PORTA |= _BV (2); // digitalWrite (24, HIGH);
  28.  PORTA |= _BV (3); // digitalWrite (25, HIGH);
  29.  PORTA |= _BV (4); // digitalWrite (26, HIGH);
  30.  PORTA |= _BV (5); // digitalWrite (27, HIGH);
  31.  PORTA |= _BV (6); // digitalWrite (28, HIGH);
  32.  PORTA |= _BV (7); // digitalWrite (29, HIGH);
  33.  PORTC |= _BV (7); // digitalWrite (30, HIGH);
  34.  PORTC |= _BV (6); // digitalWrite (31, HIGH);
  35.  PORTC |= _BV (5); // digitalWrite (32, HIGH);
  36.  PORTC |= _BV (4); // digitalWrite (33, HIGH);
  37.  PORTC |= _BV (3); // digitalWrite (34, HIGH);
  38.  PORTC |= _BV (2); // digitalWrite (35, HIGH);
  39.  PORTC |= _BV (1); // digitalWrite (36, HIGH);
  40.  PORTC |= _BV (0); // digitalWrite (37, HIGH);
  41.  PORTD |= _BV (7); // digitalWrite (38, HIGH);
  42.  PORTG |= _BV (2); // digitalWrite (39, HIGH);
  43.  PORTG |= _BV (1); // digitalWrite (40, HIGH);
  44.  PORTG |= _BV (0); // digitalWrite (41, HIGH);
  45.  PORTL |= _BV (7); // digitalWrite (42, HIGH);
  46.  PORTL |= _BV (6); // digitalWrite (43, HIGH);
  47.  PORTL |= _BV (5); // digitalWrite (44, HIGH);
  48.  PORTL |= _BV (4); // digitalWrite (45, HIGH);
  49.  PORTL |= _BV (3); // digitalWrite (46, HIGH);
  50.  PORTL |= _BV (2); // digitalWrite (47, HIGH);
  51.  PORTL |= _BV (1); // digitalWrite (48, HIGH);
  52.  PORTL |= _BV (0); // digitalWrite (49, HIGH);
  53.  PORTB |= _BV (3); // digitalWrite (50, HIGH);
  54.  PORTB |= _BV (2); // digitalWrite (51, HIGH);
  55.  PORTB |= _BV (1); // digitalWrite (52, HIGH);
  56.  PORTB |= _BV (0); // digitalWrite (53, HIGH);
  57.  PORTF |= _BV (0); // digitalWrite (A0, HIGH);
  58.  PORTF |= _BV (1); // digitalWrite (A1, HIGH);
  59.  PORTF |= _BV (2); // digitalWrite (A2, HIGH);
  60.  PORTF |= _BV (3); // digitalWrite (A3, HIGH);
  61.  PORTF |= _BV (4); // digitalWrite (A4, HIGH);
  62.  PORTF |= _BV (5); // digitalWrite (A5, HIGH);
  63.  PORTF |= _BV (6); // digitalWrite (A6, HIGH);
  64.  PORTF |= _BV (7); // digitalWrite (A7, HIGH);
  65.  PORTK |= _BV (0); // digitalWrite (A8, HIGH);
  66.  PORTK |= _BV (1); // digitalWrite (A9, HIGH);
  67.  PORTK |= _BV (2); // digitalWrite (A10, HIGH);
  68.  PORTK |= _BV (3); // digitalWrite (A11, HIGH);
  69.  PORTK |= _BV (4); // digitalWrite (A12, HIGH);
  70.  PORTK |= _BV (5); // digitalWrite (A13, HIGH);
  71.  PORTK |= _BV (6); // digitalWrite (A14, HIGH);
  72.  PORTK |= _BV (7); // digitalWrite (A15, HIGH);
  73.  
  74. // --- DIGITAL WRITE: LOW  ---
  75.  
  76.  PORTE &= ~_BV (0); // digitalWrite (0, LOW);
  77.  PORTE &= ~_BV (1); // digitalWrite (1, LOW);
  78.  PORTE &= ~_BV (4); // digitalWrite (2, LOW);
  79.  PORTE &= ~_BV (5); // digitalWrite (3, LOW);
  80.  PORTG &= ~_BV (5); // digitalWrite (4, LOW);
  81.  PORTE &= ~_BV (3); // digitalWrite (5, LOW);
  82.  PORTH &= ~_BV (3); // digitalWrite (6, LOW);
  83.  PORTH &= ~_BV (4); // digitalWrite (7, LOW);
  84.  PORTH &= ~_BV (5); // digitalWrite (8, LOW);
  85.  PORTH &= ~_BV (6); // digitalWrite (9, LOW);
  86.  PORTB &= ~_BV (4); // digitalWrite (10, LOW);
  87.  PORTB &= ~_BV (5); // digitalWrite (11, LOW);
  88.  PORTB &= ~_BV (6); // digitalWrite (12, LOW);
  89.  PORTB &= ~_BV (7); // digitalWrite (13, LOW);
  90.  PORTJ &= ~_BV (1); // digitalWrite (14, LOW);
  91.  PORTJ &= ~_BV (0); // digitalWrite (15, LOW);
  92.  PORTH &= ~_BV (1); // digitalWrite (16, LOW);
  93.  PORTH &= ~_BV (0); // digitalWrite (17, LOW);
  94.  PORTD &= ~_BV (3); // digitalWrite (18, LOW);
  95.  PORTD &= ~_BV (2); // digitalWrite (19, LOW);
  96.  PORTD &= ~_BV (1); // digitalWrite (20, LOW);
  97.  PORTD &= ~_BV (0); // digitalWrite (21, LOW);
  98.  PORTA &= ~_BV (0); // digitalWrite (22, LOW);
  99.  PORTA &= ~_BV (1); // digitalWrite (23, LOW);
  100.  PORTA &= ~_BV (2); // digitalWrite (24, LOW);
  101.  PORTA &= ~_BV (3); // digitalWrite (25, LOW);
  102.  PORTA &= ~_BV (4); // digitalWrite (26, LOW);
  103.  PORTA &= ~_BV (5); // digitalWrite (27, LOW);
  104.  PORTA &= ~_BV (6); // digitalWrite (28, LOW);
  105.  PORTA &= ~_BV (7); // digitalWrite (29, LOW);
  106.  PORTC &= ~_BV (7); // digitalWrite (30, LOW);
  107.  PORTC &= ~_BV (6); // digitalWrite (31, LOW);
  108.  PORTC &= ~_BV (5); // digitalWrite (32, LOW);
  109.  PORTC &= ~_BV (4); // digitalWrite (33, LOW);
  110.  PORTC &= ~_BV (3); // digitalWrite (34, LOW);
  111.  PORTC &= ~_BV (2); // digitalWrite (35, LOW);
  112.  PORTC &= ~_BV (1); // digitalWrite (36, LOW);
  113.  PORTC &= ~_BV (0); // digitalWrite (37, LOW);
  114.  PORTD &= ~_BV (7); // digitalWrite (38, LOW);
  115.  PORTG &= ~_BV (2); // digitalWrite (39, LOW);
  116.  PORTG &= ~_BV (1); // digitalWrite (40, LOW);
  117.  PORTG &= ~_BV (0); // digitalWrite (41, LOW);
  118.  PORTL &= ~_BV (7); // digitalWrite (42, LOW);
  119.  PORTL &= ~_BV (6); // digitalWrite (43, LOW);
  120.  PORTL &= ~_BV (5); // digitalWrite (44, LOW);
  121.  PORTL &= ~_BV (4); // digitalWrite (45, LOW);
  122.  PORTL &= ~_BV (3); // digitalWrite (46, LOW);
  123.  PORTL &= ~_BV (2); // digitalWrite (47, LOW);
  124.  PORTL &= ~_BV (1); // digitalWrite (48, LOW);
  125.  PORTL &= ~_BV (0); // digitalWrite (49, LOW);
  126.  PORTB &= ~_BV (3); // digitalWrite (50, LOW);
  127.  PORTB &= ~_BV (2); // digitalWrite (51, LOW);
  128.  PORTB &= ~_BV (1); // digitalWrite (52, LOW);
  129.  PORTB &= ~_BV (0); // digitalWrite (53, LOW);
  130.  PORTF &= ~_BV (0); // digitalWrite (A0, LOW);
  131.  PORTF &= ~_BV (1); // digitalWrite (A1, LOW);
  132.  PORTF &= ~_BV (2); // digitalWrite (A2, LOW);
  133.  PORTF &= ~_BV (3); // digitalWrite (A3, LOW);
  134.  PORTF &= ~_BV (4); // digitalWrite (A4, LOW);
  135.  PORTF &= ~_BV (5); // digitalWrite (A5, LOW);
  136.  PORTF &= ~_BV (6); // digitalWrite (A6, LOW);
  137.  PORTF &= ~_BV (7); // digitalWrite (A7, LOW);
  138.  PORTK &= ~_BV (0); // digitalWrite (A8, LOW);
  139.  PORTK &= ~_BV (1); // digitalWrite (A9, LOW);
  140.  PORTK &= ~_BV (2); // digitalWrite (A10, LOW);
  141.  PORTK &= ~_BV (3); // digitalWrite (A11, LOW);
  142.  PORTK &= ~_BV (4); // digitalWrite (A12, LOW);
  143.  PORTK &= ~_BV (5); // digitalWrite (A13, LOW);
  144.  PORTK &= ~_BV (6); // digitalWrite (A14, LOW);
  145.  PORTK &= ~_BV (7); // digitalWrite (A15, LOW);
A hozzászólás módosítva: Aug 7, 2019
(#) vyky válasza mateatek hozzászólására (») Aug 7, 2019 /
 
Isten vagy köszi ,már másolom is
(#) mateatek válasza vyky hozzászólására (») Aug 7, 2019 / 3
 
Ne köszönd. Neo is így győzött. Míg Smith ügynök mindenféle lassú függvényeket használt, addig Neo regiszter szinten tolta.
(#) vyky válasza mateatek hozzászólására (») Aug 7, 2019 /
 
(#) nemgyuri hozzászólása Aug 7, 2019 /
 
Sziasztok!
GRBL van feltöltve az UNOmra. Saját progival hajtom. Amikor mozgatja a motorokat nem tudom megállítani RESETtel. Pontosabban megállítani tudom (ctrl-x = chr(24)), de nem tudom újraindítani.
-- a '$X' után bármilyen utasítást adok hibajelzéssel válaszol, és nem csinál semmit sem. Tud Valaki egyéb "titkos" kódról? A kikapcsolom - bekapcsolom játék nem tetszik...
(#) KoblogPerGyok válasza nemgyuri hozzászólására (») Aug 7, 2019 /
 
Szia! Mi a hibaüzenet?
(#) nemgyuri válasza KoblogPerGyok hozzászólására (») Aug 7, 2019 /
 
Szia!
error:Alarm lock ok -- ez a resetre a válasz, eddig jó
error: Unsupported statementok -- ez stabil '$X' -el sem jön ki belőle.
(#) KoblogPerGyok válasza nemgyuri hozzászólására (») Aug 9, 2019 /
 
Sajnos nem tudom mi a megoldás. Igazából nem találtam semmi konkrétumot. Azt nem tudom kideríteni, hogy miért kell ujraindítani az arduino-t. Gondolom azért, mert a setup-ban van valami elindítva, amit a reset parancs leállít, Ha így van, az sem lehet véletlen gondolom. A setup-ban lévő dolgot és a paracs által meghívott rutin nélkül nem tudom mi a megoldás. Mondjuk azzal sem biztos, hogy menne.
(#) jeges válasza KoblogPerGyok hozzászólására (») Aug 9, 2019 /
 
Formázd meg az eepromot...
(#) krauszkrisztian14 hozzászólása Aug 12, 2019 /
 
Üdv! Tudna valaki segíteni abban, hogy hogyan lehet arduinoval egy nyomógomb lenyomva tartási idejét megmérni? Az kellene, hogy 3 mp lenyomva tartás után csináljon valamit, ellenben csak sima lenyomáskor csináljon mást a program.
Előre is köszönöm!
(#) vargham válasza krauszkrisztian14 hozzászólására (») Aug 12, 2019 /
 
A rövid nyomás az tiszta sor: Ha a felhasználó három másodpercen belül felengedi a gombot, akkor csináljon valamit.
A hosszú nyomást érdemes tisztázni: Akkor csináljon másvalamit a program, ha a felhasználó három másodpercen túl engedi fel a gombot, vagy ha a három másodpercen túl is nyomva tartja?
(#) krauszkrisztian14 válasza vargham hozzászólására (») Aug 12, 2019 /
 
Ha 3-nál tovább van lenyomva.
(#) icserny válasza krauszkrisztian14 hozzászólására (») Aug 12, 2019 /
 
A millis() függvény a barátod!
Lenyomáskor mentsd el a millis() által visszaadott értéket. Felengedéskor ismét hívd meg, s a két érték különbsége megmondja, hogy mennyi ideig tartott a lenyomás.
(#) krauszkrisztian14 válasza icserny hozzászólására (») Aug 12, 2019 /
 
Én is erre gondoltam, de a felengedést hogyan tudom leprogramozni?
(#) vargham válasza icserny hozzászólására (») Aug 12, 2019 /
 
Az neki nem jó, mert nem felengedésre, hanem idő túllépésre akarja aktiválni a funkciót.
(#) vargham válasza krauszkrisztian14 hozzászólására (») Aug 12, 2019 /
 
Ha letelt az idő, és a gomb még mindig nyomva van, akkor végrehajtod a funkciót, és beállítasz egy flag-et, hogy a következő gomb felengedét már ne vegye figyelembe. A gomb tényleges felengedésekor törlöd a flag-et.
(#) nemgyuri válasza KoblogPerGyok hozzászólására (») Aug 12, 2019 /
 
Időközben megoldódott, nem tudom pontosan mitől, mert már nagyon sokat bűvészkedtem a progimmal. Többek között újra rátöltöttem az UNO-ra a"GRBL" arduino forrást, talán ettől gyógyult meg....
Köszönöm a segítségedet.
(#) jeges válasza nemgyuri hozzászólására (») Aug 13, 2019 /
 
Ezért írtam eepromot töröld ki meglévő glbl verzióval csinálj új config beállított mentést az a biztos!

  1. #include <EEPROM.h>
  2.  
  3. void setup() {
  4.   EEPROM.begin(512);
  5.   // write a 0 to all 512 bytes of the EEPROM
  6.   for (int i = 0; i < 512; i++) {
  7.     EEPROM.write(i, 0);
  8.   }
  9.  
  10.   // turn the LED on when we're done
  11.   pinMode(13, OUTPUT);
  12.   digitalWrite(13, HIGH);
  13.   EEPROM.end();
  14. }
  15.  
  16. void loop() {
  17. }
A hozzászólás módosítva: Aug 13, 2019
(#) vargham válasza jeges hozzászólására (») Aug 13, 2019 /
 
Az EEPROM törölt értéke hagyományosan 0xFF és nem 0x0. Gyárilag is az van benne.
Következő: »»   549 / 855
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