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   587 / 839
(#) Kera_Will válasza elektroncso hozzászólására (») Jan 29, 2020 /
 
Harsanyi_Reka_Juhasz_Marton_Andras--Fizikai_szamitastechnika__elektronikai_alapok_es_Arduino_programozas_

könyv pdfben letoltheto 212 oldalátol processinges minta példák
(#) tbarath válasza elektroncso hozzászólására (») Jan 29, 2020 /
 
Ezt kipróbálnád?
  1. val = myPort.readStringUntil('\n');
  2. val = val.replaceAll("(\\r|\\n)", "");

Illetve nem tudom, hogy két backslash kell oda vagy egy, próbáld ki \r és \n módon is.
A hozzászólás módosítva: Jan 29, 2020
(#) elektroncso válasza tbarath hozzászólására (») Jan 29, 2020 /
 
Köszönöm, így már működik!

Ez mit is csinál pontosan? Csak hogy kb. értsem mi is történik. Persze ha nagyon bonyolult elmagyarázni akkor hagyjuk, nem akarom a hosszú gépeléssel rabolni az idődet, egy két éven belül fősulin úgyis tanulni fogjuk, majd akkor megvilágosodok.
(#) bbb válasza elektroncso hozzászólására (») Jan 29, 2020 /
 
Megtisztítja a stringedet a sortörésektől. Egyébként egy jó kis leírás a hibádra:
Bővebben: Link
(#) Kovidivi válasza elektroncso hozzászólására (») Jan 29, 2020 /
 
A soros porton futkosó karaktereket küldd át egy az egyben a PC-d-re, és akkor kiderül, hogy mi a gond. Én szoktam tesztelni a különféle fv-eket is, pl. parseint. Létrehozok egy sztringet, és azzal etetem meg a fv-t. Próbálgassad.
(#) moderboy válasza elektroncso hozzászólására (») Jan 29, 2020 /
 
Sorvégi vezérlő karakterek, amik a távírók korából maradtak meg.
\r a kocsi vissza, ez olyan mintha a kurzort a sor elejére küldenéd
\n a soremelés, ez a következő sorba teszi a kurzort

Ha gépről küldöd az adatot ott általában kiválaszthatod hogy kéred-e ezeket a sor végére vagy nem.
(#) tbarath válasza moderboy hozzászólására (») Jan 30, 2020 /
 
Illetve a unix/linux és a dos/windows világ máshogy kezeli ezt, előbbinél jellemzően \n a sortörés, utóbbinál \r\n. Ezek egyébként a (decimális) 13 és 10 karakterek az ASCII táblában (hexa 0D és hexa 0A).
(#) Dozis hozzászólása Jan 30, 2020 /
 
Sziasztok!

Ardunio -ra valaki tudna segíteni nekem egy olyan programot írni amely 2relét vezérelne.

A feladat 2 nyomogomb lenne 1-1 relét működtetne, úgy hogy ha megnyomom bekapcsol és 10másodperc után ki de ha időközben még egy impulzust kap akkor is kapcsoljon ki.
És ez egymástól függetlenül is működjön.
(#) Bell válasza Dozis hozzászólására (») Jan 30, 2020 /
 
Nincs tesztelve és nem tökéletes, de gondolatébresztőnek talán megfelel.
  1. #define rele1 5
  2. #define rele2 6
  3. #define nyg1 4
  4. #define nyg2 5
  5. const byte sec1max = 10;
  6. const byte sec2max = 10;
  7. byte r1,r2;
  8. void setup() {
  9.  pinMode(rele1, OUTPUT);
  10.  pinMode(rele1, OUTPUT);
  11.  pinMode(nyg1, INPUT_PULLUP);
  12.  pinMode(nyg2, INPUT_PULLUP);
  13.  digitalWrite(rele1, LOW);
  14.  digitalWrite(rele2, LOW);
  15.  r1=0;
  16.  r2=0;
  17. }
  18.  
  19. void loop() {
  20.  // Ha relé1 meg van húzva
  21.  if(digitalRead(rele1)==HIGH)
  22. {
  23. if(digitalRead(nyg1==LOW))
  24. {
  25.  digitalWrite(rele1, LOW);
  26.  r1=0;
  27.  while(digitalRead(nyg1)==LOW);
  28.  delay(20);
  29. }
  30.  if(r1> sec1max)
  31.   {
  32.  digitalWrite(rele1, LOW);
  33.  r1=0;  
  34.   }
  35. }  
  36.  // Ha relé1 nincs meghúzva
  37.  if(digitalRead(rele1)==LOW )
  38. {
  39. if(digitalRead(nyg1==LOW))
  40. {
  41.  digitalWrite(rele1, HIGH);
  42.  while(digitalRead(nyg1)==LOW);
  43.  delay(20);
  44. }
  45. r1++;
  46. } // relé1 vége
  47.  
  48. /*
  49.  * ide jön a másik relé programja
  50.  */
  51.  
  52. if(r1>0 | r2>0)
  53. {
  54. delay(1000);
  55. }
  56. }
(#) tbarath válasza Dozis hozzászólására (») Jan 30, 2020 /
 
Alulspecifikált a feladat. A nyomógomb/relé párosoknak egymástól függetlenül kell működnie?
(#) Bell válasza Bell hozzászólására (») Jan 30, 2020 /
 
A
  1. #define nyg2 5

helyett
  1. #define nyg2 3

a megfelelő érték.
(#) Kera_Will válasza Dozis hozzászólására (») Jan 30, 2020 /
 
A delay() itt nem lesz praktikus mert amig var semmit nem.fog.csinalni a proci.
A millis() fuggveny sokkal jobb.
Habar annak 40 50 nap folyamatos uzem mulva lesz varazsa .
(#) djusee válasza Kera_Will hozzászólására (») Jan 31, 2020 /
 
Ha jól van megírva akkor nem szabadna neki varázsolnia. Bővebben: Link
(#) tbarath válasza Kera_Will hozzászólására (») Jan 31, 2020 /
 
Na igen, ez a másik alulspecifikált része. Ha ilyen napon-héten-hónapon belüli demó, akkor nem kell vele foglalkozni - bár akkor is célszerű. Ha ezen túlmész, akkor kell.
(#) Petya810729 válasza Frankye hozzászólására (») Jan 31, 2020 /
 
Szia!

Egy esemény bekövetkeztére szeretnél elindítani egy számlálót, ami hatig elmegy (a számláló minden egyes értékéhez hozzá rendelve egy folyamatot), majd újra kezdeni, mindaddig, míg bekövetkezik egy "másik" esemény, ami ebből kiléptet?

Végtelen ciklus is indulhat, ami 1-6 fut és elvégzi a "belső" folyamatokat, ameddig egy "eseményre" le nem állítod... (lehet, hogy valami hasonló hiba okozza a leírtakból ítélve és 0 -ra lépve lesz gondja....)

Ha jól értettem, mit szeretnél.
(#) Bell válasza Kera_Will hozzászólására (») Jan 31, 2020 /
 
Eredetileg én megszakítással gondoltam megoldani, de játszani, megtapasztalni a hátrányokat, átgondolni és tanulni belőle érdemes az egyszerűbb megoldással kezdeni.
(#) usane hozzászólása Jan 31, 2020 /
 
Üdv!

Esp-re van valami json könyvtár? Egy webszervert szeretnék működtetni ESP8266-on és szeretnék json fájlal váaszolni a GET vagy POST kérésre.
(#) Pulyka válasza Bell hozzászólására (») Jan 31, 2020 /
 
En a napokban készítettem el elso kis LCD-s menü rendszeremet UV lampahoz, abban is ugyanaz a feladat. Elinditok egy időzítést, majd ugyanazzal a gombbal leallitom, megszakitom, alaphelyzetbe allitom. A trukk: nyomogomb allapot figyeles. Egy nyomassal beallitom az értéket, hosszuval inditom az idozitot, majd duplaval leallitom, ugyanazzal a gombbal mindezt.
Holnap, vagy azutan linkelem. OneButton.h a konyvtar neve azt hiszem.
(#) Dozis válasza Bell hozzászólására (») Feb 1, 2020 /
 
Köszönöm kipróbálom!!
Megírom majd hogy sikerült
(#) Dozis válasza tbarath hozzászólására (») Feb 1, 2020 /
 
Igen egymástól függetlenül...
Ha az egyik èp meghúzva van attól mèg a másiknak is indíthatónak illetve megállíthatónak kell lennie.
(#) Pulyka válasza Pulyka hozzászólására (») Feb 1, 2020 /
 
Ilyen lett.
Kell még rá pár javítás, stb, de szerintem egész jóra sikerült az első saját(példákból dolgoztam, rájöttem, hogy mi, és hogyan, mi mivel működik.), "összeollózott" menürendszerem.
  1. /*
  2. https://www.mathertel.de/Arduino/OneButtonLibrary.aspx
  3. https://www.instructables.com/id/How-to-Connect-I2C-Lcd-Display-to-Arduino-Uno/
  4. https://alialkarkuki.blogspot.com/
  5. https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay
  6. */
  7.  
  8. #include <Wire.h>
  9. #include <LCD.h>
  10. #include <LiquidCrystal_I2C.h>
  11.  
  12. #define I2C_ADDR          0x27
  13. #define BACKLIGHT_PIN      3
  14. #define En_pin             2
  15. #define Rw_pin             1
  16. #define Rs_pin             0
  17. #define D4_pin             4
  18. #define D5_pin             5
  19. #define D6_pin             6
  20. #define D7_pin             7
  21.  
  22. LiquidCrystal_I2C      lcd(I2C_ADDR, En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
  23.  
  24. #include "OneButton.h"
  25.  
  26. OneButton button(9, true);
  27.  
  28. int value = 7;
  29. int displayvalue = 30;
  30. int buttonPressCount = 0;
  31. int uvindul = 0;
  32. int rele = 13;
  33.  
  34. long previousMillis = 0;
  35. long interval = 500;
  36. int szamlalo = 0;
  37.  
  38. void setup()
  39. {
  40.  
  41.   pinMode(13, OUTPUT);
  42.  
  43.   lcd.begin (16,2);
  44.    
  45.   lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
  46.   lcd.setBacklight(HIGH);
  47.      
  48.   button.attachDoubleClick(doubleclick);            // link the function to be called on a doubleclick event.
  49.   button.attachClick(singleclick);                  // link the function to be called on a singleclick event.
  50.   button.attachLongPressStop(longclick);            // link the function to be called on a longpress event.
  51. }
  52.  
  53.  
  54.  
  55. void loop()
  56. {
  57.   button.tick();                                    // check the status of the button
  58.   delay(10);
  59.  
  60. if
  61. (uvindul == 0)
  62.   {
  63.   digitalWrite(rele, LOW);
  64.   lcd.setCursor(1,0);
  65.   lcd.print("Beallitott ido:");
  66.  
  67.   lcd.setCursor(7,1);
  68.   lcd.print(displayvalue);
  69.  
  70.   if (buttonPressCount % value == 1)
  71.   {
  72.   displayvalue = 60;
  73.   }
  74.  
  75.   if (buttonPressCount % value == 2)
  76.   {
  77.   displayvalue = 90;
  78.   }
  79.  
  80.   if (buttonPressCount % value == 3)
  81.   {
  82.   displayvalue = 120;
  83.   }
  84.  
  85.   if (buttonPressCount % value == 4)
  86.   {
  87.   displayvalue = 150;
  88.   }
  89.  
  90.   if (buttonPressCount % value == 5)
  91.   {
  92.   displayvalue = 180;
  93.   }
  94.  
  95.   if (buttonPressCount % value == 6)
  96.   {
  97.   displayvalue = 30;
  98.   value = 0;
  99.   buttonPressCount = 0;
  100.   lcd.clear();
  101.   }
  102.   }
  103.  
  104.  
  105. if
  106. (uvindul == 1)
  107.   {
  108.   digitalWrite(rele, HIGH);
  109.   unsigned long currentMillis = millis();
  110.   if(currentMillis - previousMillis > interval)
  111.   {
  112.   previousMillis = currentMillis;  
  113.      
  114.   if (szamlalo == 0)
  115.      {
  116.      szamlalo = 1;
  117.      displayvalue--;
  118.      }
  119.      else
  120.      szamlalo = 0;
  121.   }  
  122.   lcd.setCursor(1,0);
  123.   lcd.print("Hatralevo ido:");
  124.  
  125.   lcd.setCursor(7,1);
  126.   lcd.print(displayvalue);
  127.  
  128.   }
  129.  
  130. if
  131. (displayvalue == 0)
  132.   {
  133.   digitalWrite(rele, LOW);
  134.   lcd.clear();
  135.   lcd.setCursor(4,0);
  136.   lcd.print("Kesz. ");
  137.   delay(2000);
  138.   lcd.clear();
  139.   displayvalue = 30;
  140.   uvindul = 0;
  141.   }
  142.  
  143. }
  144.  
  145. void doubleclick()
  146.   {
  147.   if
  148.   (uvindul == 1)
  149.   {
  150.   digitalWrite(rele, LOW);
  151.   lcd.clear();
  152.   lcd.setCursor(4,0);
  153.   lcd.print("Szamlalo");
  154.   lcd.setCursor(3,1);
  155.   lcd.print("megallitva.");
  156.   delay(2000);
  157.   lcd.clear();
  158.   uvindul = 0;
  159.   value = 7;
  160.   displayvalue = 30;
  161.   buttonPressCount = 0;
  162.   }
  163.   }
  164.  
  165. void singleclick()
  166. {
  167. buttonPressCount++;
  168. delay(50);
  169. }
  170.  
  171. void longclick()
  172. {
  173.   lcd.clear();
  174.   lcd.setCursor(4,0);
  175.   lcd.print("Inditas...");
  176.   delay(2000);
  177.   uvindul = 1;
  178.   lcd.clear();
  179. }
A hozzászólás módosítva: Feb 1, 2020
(#) Pulyka válasza Pulyka hozzászólására (») Feb 1, 2020 /
 
Mit gondoltok?
Kezdőhhőz, vagy haladóhoz képest jó lett?
(#) Bell válasza Pulyka hozzászólására (») Feb 1, 2020 /
 
Egy nyomógombbal ki / be kapcsolgatni ezt-azt, elég gyakori igény.
A megvalósítás módja is épp olyan sokféle lehet.
De ha van kész, jól működő lib, igazad van, nem érdemes újból felfedezni a meleg vizet.
(#) Dozis válasza Bell hozzászólására (») Feb 4, 2020 /
 
Kipróbáltam!
sajnos nem jól működik a relé folyamatosan meg van húzva csak addig enged el míg nyomva tartom a hozzá tartozó nyomógombot!
azért köszönöm.
(#) Rober_4 hozzászólása Feb 4, 2020 /
 
Sziasztok!

Nincs valakinek ötlete, hogy hogyan tudnám a vs1053b- belső órajelét megnövelni? Elvileg a realtime midi polifóniája, és a midi reverb miatt lenne rá szükségem. (31. oldal) Ha jól értelmezem, akkor elvileg az alacsony energiafogyasztás miatt alapból csak 12MHz, de elvileg állítható 43MH-ig...
Még egy kérdés: az SPI frekvenciát egyébként az Arduinó szabja meg, vagy a vs1053?
  1. SPI.setClockDivider(SPI_CLOCK_DIV16);

Minden segítséget köszönök!
(#) vargham válasza Rober_4 hozzászólására (») Feb 4, 2020 / 1
 
Az SPI frekvenciát a master, vagyis az Arduino adja. Belőle jön a clock jel... Maximum CLKI/
7 lehet az értéke, lásd adatlap 9. oldalát. Minimum pedig kb bármennyi.
(#) Rober_4 válasza vargham hozzászólására (») Feb 4, 2020 /
 
Gondolom ez akkor jó ha gyorsabb, azaz kisebb az osztó, amennyiben nincs hiba az átvitelben...
Igen nálam SPI_CLOCK_DIV8-al még jó. SPI_CLOCK_DIV4-nél már nem indul el az eszköz.
Köszönöm!
(#) Rober_4 válasza Rober_4 hozzászólására (») Feb 4, 2020 /
 
Bocsánat elírtam az infó a 32. oldalon lenne amire gondoltam!
(#) Massawa hozzászólása Feb 4, 2020 /
 
Sziasztok

venné valaki a fáradtságot és leellenörizné az alábbi NANO-ra modifikált CNC meghajtot. (A CNC shieldnek a NANOra valo átültetése 2 motorral). Utánna nekifogok a NYÁK megtervezésének, akit érdekel szoljon.

Kösz.
(#) Bell válasza Dozis hozzászólására (») Feb 4, 2020 /
 
Beletetted a javítást is?
Az elején, a 4. sorban szereplő
#define nyg2 5
helyett
#define nyg2 3
a megfelelő érték.
Következő: »»   587 / 839
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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