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   561 / 854
(#) sargarigo válasza asrock hozzászólására (») Okt 28, 2019 /
 
Úgy érzem itt a leves sokkal drágább mint a hús bele. De természetesen nem akarlak meggyőzni. Segíteni sajnos nem tudok, de sok sikert!
(#) djusee válasza sargarigo hozzászólására (») Okt 28, 2019 /
 
Ne haragudj hogy beleszólok, igen meglehet hogy drágább hús mint a leves ha csak az órát magát nézed, de akkor hol marad a sikerélmény amikor megépíti, beindul, szépen bedobozolja és gyönyörködik benne, esetleg mint ahogy asrock is írja a szüleinek adja, egy kis részt magából az idejéböl a megszerzett tudásából. Szerintem sokan itt nem csak azért csinálunk valamit mert csak pusztán olcsóbb mint megvenni, hanem mert hobbink, az így szerzett tapasztalat, tudás már nem pénzben mérhetö. Ha a kifizetöséget néznénk akkor nem is kellene hobbiznunk mert bizony sok tanulópénzt, idöt bele kell ölnünk, kínából biztos lehetne pár dollárért akár projektoros meg mit tudom én milyen órát venni, de azt bárki megtudja venni, nem kell hozzá szorgalom, kitartás, tanulási hajlam. Én magam is csak a megszerezhetö tapasztalat/tudásért/kihívásért hobbizom sajnos(sajnos mert legtöbbször ha a projekt müködik utána már nem érdekes, ujat kezdek)Persze lehet hogy néha az ember a tudásához képest nagy fába vágja a fejszéjét, de szerintem maga is rá fog jönni, ha leoltjuk akkor az elég negatív élmény lehet számára, persze valakinek ilyenkor indul be az akkor is megmutatom ösztön. Mégegyszer elnézést.
A hozzászólás módosítva: Okt 28, 2019
(#) tbarath válasza asrock hozzászólására (») Okt 28, 2019 /
 
Ez így szerintem az usákiai, az EU-ban az utolsó vasárnap hajnalban van az állítás, UTC szerint 1 órakor.
Algoritmizálni szerintem így:
- az adott hónap utolsó 7 napjába essen, azaz 25-31 közötti legyen a day (március és október is 31 napos)
- legyen vasárnap
- legyen 2 óra (visszaállításnál asszem 3)
- és legyen a "régi" időzónában, azaz DST-re váltásnál DST nélküli, DST-ről váltásnál DST
A hozzászólás módosítva: Okt 28, 2019
(#) asrock válasza tbarath hozzászólására (») Okt 28, 2019 /
 
Ezt függvényben hogy lehetne levezetni?
(#) sargarigo válasza djusee hozzászólására (») Okt 28, 2019 /
 
Általában egyet értenék veled, de most nem érzem hogy magamra nézve el kellene ezt fogadnom. Nem oltottam le, csak jeleztem hogy ebben nem tudok segíteni. Remélem ez azért csak nem baj..
(#) sargarigo válasza asrock hozzászólására (») Okt 28, 2019 /
 
Lehet hogy elég lenne egy "semi-automatic" megoldás is ide! Van egy gomb amit ha megnyom, akkor magától visszatekeri az órát (vagy előre). Így nem kell algoritmizálni, nincs szükség rtc-re, szinkronizálásra stb.
Azt úgyis tudja hogy mikor van az állítás.
Így már csak magát az órát kell meghekkelni, nem kell a naptárral is foglalkozni. Szvsz. Én most a saját szüleimből indultam ki (most állítottam át az órájukat )
A hozzászólás módosítva: Okt 28, 2019
(#) proba válasza asrock hozzászólására (») Okt 28, 2019 /
 
Egy régen ilyet csináltam GPS jelből, de az saját órára volt kitalálva. Az algoritmust bonyolítja, a hét napjait a szökőévek is tologatják, valamint a rendkívüli szökőévek is (2000) . Persze ha az RTC tudja a napokat akkor sokkal egyszerűbb. ( amire én emlékszem, az csak számolgatta, de dátumból nem tudta kiszámolni ) Valahogy úgy számoltam, minden hónapra és egy évre megvolt hogy mennyivel tér el a 7 egész számú többszörösétől a napok száma, ezeket egy fix dátum napjához hozzáadva és a szökőévek számaival növelve egy maradékos 7-tel osztás után kijött, hogy a konstans naptól mennyivel tér el a számított nap. Ez után már csak ha vasárnap jött ki azt kellett ellenőrizni, ha hetet hozzáadok a dátumhoz, 31-nél nagyobb lesz-e, no meg a hónapot.
A hozzászólás módosítva: Okt 28, 2019
(#) Kovidivi válasza asrock hozzászólására (») Okt 28, 2019 /
 
Inkább tedd felhasználóbaráttá az órád! Engem is érdekelne egyébként a megoldás, de az én óráim nem tárolják a napot, szóval azt is bele kellene programoznom. Inkább a beállítást egyszerűsítettem le.
A hozzászólás módosítva: Okt 28, 2019
(#) Bakman válasza asrock hozzászólására (») Okt 28, 2019 /
 
Hacsak hétvégéig valaki meg nem teszi, akkor megosztom az algoritmust, ami Flowcode-ban íródott. Ha jól emlékszem, akkor ezt: DayLightSaving with DayOfWeek.fcfx használtam fel egyszer, azóta is jól működik több órában. Ott, abban a helyzetben szükséges volt az automatikus DST.
A hozzászólás módosítva: Okt 28, 2019
(#) pipi válasza asrock hozzászólására (») Okt 28, 2019 /
 
Hali!
Nálam ez "muzsikál", szó nélkül átállt. Ha mazsolázni akarsz, ott a DST library amit használ.
Ha keresgélni akarsz a DST a kulcsszó
(#) tbarath válasza asrock hozzászólására (») Okt 28, 2019 /
 
Van ez a lib: Bővebben: Link. Ez egészen megkönnyíti a dolgot.

A kód valami ilyesmi lehet:
  1. RTC_DS3231 rtc;
  2. uint8_t is_dst;
  3.  
  4. //      ...
  5.  
  6. void loop (){
  7.  
  8. //      ...
  9.  
  10.         DateTime dt = rtc.now();  
  11.  
  12.         if (
  13.                         (0 == dt.dayOfTheWeek()) // már ha 0 a vasarnap, de az szokott lenni
  14.                 &&      (3 == dt.month())
  15.                 &&      (25 >= dt.day())
  16.                 &&      (2 == dt.hour())
  17.                 &&      (0 == dt.minute())
  18.                 &&      (0 == dt.second())
  19.                 &&      (0 == is_dst)    
  20.         ){
  21.                 rtc.adjust(DateTime(dt.year(), dt.month(), dt.day(), dt.hour() +1, dt.minute(), dt.second()));      
  22.                 is_dst = 1;      
  23.         }    
  24.         if (
  25.                         (0 == dt.dayOfTheWeek()) // már ha 0 a vasarnap, de az szokott lenni
  26.                 &&      (10 == dt.month())
  27.                 &&      (25 >= dt.day())
  28.                 &&      (3 == dt.hour())
  29.                 &&      (0 == dt.minute())
  30.                 &&      (0 == dt.second())
  31.                 &&      (1 == is_dst)    
  32.         ){
  33.                 rtc.adjust(DateTime(dt.year(), dt.month(), dt.day(), dt.hour() -1, dt.minute(), dt.second()));      
  34.                 is_dst = 0;      
  35.         }    
  36.  
  37. //      ...
  38. }

A kódrészlet nem tesztelt, lehet nem is fordul, lehet hibás a működése, de kb. így csinálnám ha ez lenne a dolgom. Aztán a DST-t változtatáskor az aktuális értéket el kellene tárolni epromban, setup-ban beolvasni az aktuális értéket, lekezelni azt is, ha az épp nincs, szóval lehet még ezzel molyolni akkor is, ha épp jó amit felskicceltem.
A hozzászólás módosítva: Okt 28, 2019
(#) pipi válasza pipi hozzászólására (») Okt 28, 2019 /
 
Ja lemaradt a link: Bővebben: Link
(#) asrock válasza Kovidivi hozzászólására (») Okt 28, 2019 /
 
Közé teszem de csak ugy hogy még pár funkciót itt segítetek bele rakni csak össze ollóztam kódokból!
Áll az alku?
itt tartok vele!
Bővebben: Link
(#) tbarath válasza asrock hozzászólására (») Okt 28, 2019 /
 
Ja, hogy nem arduino. Hát, akkor a fene tudja, hogy az rtc lib mennyire fog menni
(#) asrock válasza tbarath hozzászólására (») Okt 28, 2019 /
 
Sajnos nem működik ebben az óra projektemben rtc lib kezeli amit linkeltél nem tudom miért bele van irva a lib részbe pedig !
Téli /nyárit eltolódást én állítgattam rajta!
(#) asrock válasza tbarath hozzászólására (») Okt 28, 2019 /
 
328 projektnél sem.... piros matrix óra!
(#) tbarath válasza asrock hozzászólására (») Okt 28, 2019 /
 
Az a lib nem is állítja magáról, hogy kezelne DST-t, én legalábbis nem láttam olyat leírva. De annak a fv-eit, pontosabban az általa visszaadott DateTime részeit felhasználva simán megoldható, egyszerűen.
A hozzászólás módosítva: Okt 28, 2019
(#) asrock válasza pipi hozzászólására (») Okt 28, 2019 /
 
(#) asrock válasza tbarath hozzászólására (») Okt 28, 2019 /
 
(#) tbarath válasza asrock hozzászólására (») Okt 28, 2019 /
 
Ez egy 5 commit-os pull request, amit nem olvasztottak be. Maga a kód is teljesen más, mint ahogy az adafruit-os mostanában kinéz, a srác forkjánál (branch) ez szerepel: "This branch is 5 commits ahead, 121 commits behind adafruit:master." Bővebben: Link
(#) pipi válasza asrock hozzászólására (») Okt 28, 2019 /
 
Amelyik nevében benne van a DST
Install libraries:
Mini Grafx by Daniel Eichhorn
ESP8266 WeatherStation by Daniel Eichhorn
Json Streaming Parser by Daniel Eichhorn
simpleDSTadjust by neptune2
XPT2046 TouchScreen by Paul Stoffregen

Ha megcsinálod a linken lévő óra/időjárás állomást, nincs is szükség rtc-re, lopja az időt az internetről, amíg esetleg nincs internet, addig jár a belső órájáról
A hozzászólás módosítva: Okt 28, 2019
(#) asrock válasza pipi hozzászólására (») Okt 28, 2019 /
 
simpleDSTadjust jó lenne!

Már van abba kell!
2 rész ntp /ds
  1. void time_ntp_print()  
  2. {
  3.  
  4. timeClient.update();
  5.  
  6. String Y (timeClient.getYear());
  7. String M (timeClient.getMonth());
  8. String D (timeClient.getDate());
  9. String h (timeClient.getHours());
  10. String m (timeClient.getMinutes());
  11. String d (daysOfTheWeek[timeClient.getDay()]);
  12. String mh (monthOfTheWeek[timeClient.getMonth()]);
  13. Serial.print("NTP: ");
  14. Serial.print(timeClient.getFullFormattedTime());
  15.  
  16.  
  17.   char time_string[50];
  18.  
  19. sprintf(time_string, "NTP   %d.%s.%d  %s  %02d:%02d ",Y.toInt(),mh.c_str(),D.toInt(),d.c_str(),h.toInt(),m.toInt());
  20.  P.displayText(time_string, PA_CENTER, SCROLL_SPEED3, PAUSE_TIME3, PA_SCROLL_RIGHT ? PA_SCROLL_LEFT : PA_SCROLL_RIGHT);
  21.  while (!P.displayAnimate()) {
  22.   P.displayAnimate();
  23.   ESP.wdtFeed();
  24.   controlBR();
  25.  
  26.   }
  27.  
  28. }
  29.  
  30. void time_ds_print()  
  31. {
  32.  
  33.  DateTime now = rtc.now();
  34.  
  35.     Serial.print("DS3231: ");
  36.     Serial.print(now.year(), DEC);
  37.     Serial.print('/');
  38.     Serial.print(now.month(), DEC);
  39.     Serial.print('/');
  40.     Serial.print(now.day(), DEC);
  41.     Serial.print(" (");
  42.     Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
  43.     Serial.print(") ");
  44.     Serial.print(now.hour(), DEC);
  45.     Serial.print(':');
  46.     Serial.print(now.minute(), DEC);
  47.     Serial.print(':');
  48.     Serial.print(now.second(), DEC);
  49.     Serial.println();
  50.    
  51.  
  52. String d2 (daysOfTheWeek[now.dayOfTheWeek()]);
  53. String mh2 (monthOfTheWeek[now.month()]);
  54.  
  55.  
  56.  now = rtc.now();
  57.  char time_string[100];
  58.  sprintf(time_string, "DS   %d.%s.%d  %s   %02d:%02d ",
  59.           now.year(), mh2.c_str(),now.day(), d2.c_str(),
  60.           now.hour(), now.minute());
  61.          
  62.  P.displayText(time_string, PA_CENTER, SCROLL_SPEED3, PAUSE_TIME3, PA_SCROLL_RIGHT ? PA_SCROLL_LEFT : PA_SCROLL_RIGHT);
  63.  while (!P.displayAnimate()) {
  64.   P.displayAnimate();
  65.   ESP.wdtFeed();
  66.   controlBR();
  67.  
  68.  
  69.   }
A hozzászólás módosítva: Okt 28, 2019
(#) asrock hozzászólása Okt 29, 2019 /
 
Forgó encoder egy" long newPosition" változót ir ezt nullázni szeretném nyomógombbal de nem hoz eredményt !
  1. long oldPosition  = -999;
  2.   int  feedRate = 1800;
  3.   char axis     = 'X';
  4.   long  newPosition=0;
  5.  
  6.  #define       BUTTON    D0
  7.   Encoder myEnc(D1, D2);
  8. void setup()
  9.   {
  10.     Serial.begin(115200);    
  11.     Serial.flush();
  12.    
  13.    
  14.     pinMode(BUTTON, INPUT_PULLUP);  // Initiate Connectivity
  15.     digitalWrite(LED0, !LOW);       // Turn WiFi LED Off
  16.    
  17. }
  18.  
  19.  
  20. void loop()
  21.   {
  22.  
  23. if( !digitalRead(BUTTON) ){long newPosition=0; Serial.flush();}
  24.  
  25.  ReadButton();
  26.  
  27.     Encoder_1();
  28.  
  29. void Encoder_1()
  30.   {
  31. long newPosition = myEnc.read()/4;
  32.   if (newPosition != oldPosition) {
  33.     oldPosition = newPosition;
  34.     //Serial.println(newPosition);
  35. Serial.printf("G0 %c%d F%d\n",axis,newPosition,feedRate);
  36.  
  37.  
  38.  
  39. }    
  40.  Serial.flush();
  41.          
  42.  
  43.     }
(#) djusee válasza asrock hozzászólására (») Okt 29, 2019 /
 
Szia, a newPosition változót többször is deklarálod.A 4. -ik sorban globálisként deklaráltad és inicializáltad, majd pediglen a 23. -ik, 31. -ik sorban ismét . Ha globálisként létrehozol egy változót akkor nemszerencsés (sőt), ugyanazzal a névvel uj változót létrehozni funkción belül. Esetleg a 23. , 31. .ik sorban hagyd el a long -ot a változód elöl és így a globális változódra fogsz hivatkozni
(#) kapu48 válasza asrock hozzászólására (») Okt 29, 2019 /
 
  1. long oldPosition  = -999;
  2.   int  feedRate = 1800;
  3.   char axis     = 'X';
  4.   long  newPosition=0;
  5.  
  6.  #define       BUTTON    D0
  7.   Encoder myEnc(D1, D2);
  8.        
  9. void setup()
  10. {
  11.     Serial.begin(115200);    
  12.     Serial.flush();
  13.    
  14.    
  15.     pinMode(BUTTON, INPUT_PULLUP);  // Initiate Connectivity
  16.     digitalWrite(LED0, !LOW);       // Turn WiFi LED Off
  17.    
  18. }
  19.  
  20.  
  21. void loop()
  22. {
  23.  
  24.   if( !digitalRead(BUTTON) )
  25.         {
  26.           newPosition=0; // Nem kel újra létrehozni a már meglevő változót.
  27.           Serial.flush();  // Ez minek ide?
  28.         }
  29.  
  30.   ReadButton();
  31.  
  32.   Encoder_1();
  33. }
  34.  
  35. void Encoder_1()
  36. {
  37.   long newPosition = myEnc.read()/4;
  38.   if (newPosition != oldPosition)
  39.         {
  40.     oldPosition = newPosition;
  41.     //Serial.println(newPosition);
  42.     Serial.printf("G0 %c%d F%d\n",axis,newPosition,feedRate);
  43.  
  44.  
  45.  
  46.   }    
  47.   Serial.flush();
  48.          
  49.  }

És zárójelez szabályosan! Mert ilyen kússza formázással nem veszed észre a kimaradt ’}’ jelet a loop végén.
A hozzászólás módosítva: Okt 29, 2019
(#) asrock válasza kapu48 hozzászólására (») Okt 29, 2019 /
 
Ez csak részlet kod!
Az alap hiba ez a része mért nem nulláz?
változót 0 zuk serial buffer is ürítve hol ragad be az érték?
  1. if( !digitalRead(BUTTON) )
  2.         {
  3.           newPosition=0; // Nem kel újra létrehozni a már meglevő változót.
  4.           Serial.flush();  // Ez minek ide?
  5.         }

VIDEO
A hozzászólás módosítva: Okt 29, 2019
(#) Moderátor hozzászólása Kukulkan hozzászólására (») Okt 31, 2019
 
Egy kérdést csak egyszer, egy helyen!
(#) KoblogPerGyok válasza asrock hozzászólására (») Okt 31, 2019 /
 
Helló!

Tedd be a teljes kódot, mert érzésem szerint interrupt is van. Ha ez igaz, akkor az a változó, amit az interrupt is változtat és más függvény is a volatile típus lesz.
(#) asrock válasza KoblogPerGyok hozzászólására (») Okt 31, 2019 /
 
szia!
Encoder lib az tárolt valamit be igy eldobtam másik megoldással működik ahogy szeretném....
Köszi hogy megkérdezted!
(#) asrock hozzászólása Nov 2, 2019 /
 
Negatív értéket mivel lehet elhagyni vagyis csak nulláig számoljon?
abs függvénnyel próbálkoztam de nem jön össze!
  1. int  feedRate = 0;
  2.  
  3. n = digitalRead(encoder0PinA);
  4.   if ((encoder0PinALast == LOW) && (n == HIGH)) {
  5.     if (digitalRead(encoder0PinB) == LOW) {
  6.    feedRate=feedRate-10;
  7.     } else {
  8.       feedRate=feedRate+10;
Következő: »»   561 / 854
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