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   588 / 840
(#) proba válasza Bell hozzászólására (») Feb 4, 2020 / 1
 
És pinMode(rele1, OUTPUT); sor is kétszer szerepel. Az egyik gondolom rele2 akart lenni.
(#) Bell válasza proba hozzászólására (») Feb 5, 2020 /
 
Köszönöm az észrevételt!
Ez valóban hiba. De mint írtam, nem volt tesztelve, ezt nem egy kész, végleges, tökéletes megoldásnak szántam, hanem gondolatébresztőnek - a nyilvánvaló hibákkal együtt.
Alkalom adtán összerakom én is és levonom a következtetéseket
Aki kész, tökéletes megoldást keres, amivel semmilyen gond nem lehet, vásárol egyet készen, vagy ha van elég ideje, türelme, megtanulja saját maga elkészíteni.
A fórumokon többnyire az utóbbihoz kaphat némi ötletet, valamilyen segítséget.
Ezeknek természetes velejárója a kritika, mert lehetnek benne elírások, akár elvi hibák, de nincs olyan program, aminél ne lehetne egyszerűbbet, jobbat, rövidebbet, komfortosabbat, szellemesebbet készíteni.
"Az éhező embernek ne enni adj, hanem tanítsd meg halat fogni!"
(#) gyula84 hozzászólása Feb 5, 2020 /
 
Üdv elég kezdő kérdésem lenne, de nem tudtam hogy rákeresni így felteszem itt remélem nem baj, ezt meglehet oldani rövidebben is? Az á betűt így tudtam beilleszteni.
  1. lcd.setCursor(0, 0);
  2.       lcd.print("Kaz");
  3.       lcd.setCursor(3,0);
  4.       lcd.write(byte(0));
  5.       lcd.setCursor(4,0);
  6.       lcd.print("n:");
(#) Bakman válasza gyula84 hozzászólására (») Feb 5, 2020 /
 
A 3. és 5. sor feltétlen kell?
(#) benjami válasza gyula84 hozzászólására (») Feb 5, 2020 /
 
Milyen lcd az ami a 0 kódú karakterre írja ki az 'á' betűt?
(#) Bakman válasza benjami hozzászólására (») Feb 5, 2020 / 2
 
0-7 karakterek a CG-ROM címei, azzal töltöd fel, amivel akarod. Leeht 'á' betű is.
(#) benjami válasza Bakman hozzászólására (») Feb 5, 2020 / 2
 
A 8..15 kódokra is ugyanazok a karakterek jelennek meg, azt rendesen tudod használni, mert nem veszi string vége jelnek:
  1. lcd.print("Kaz\x08n:");
(#) szitko hozzászólása Feb 5, 2020 /
 
Sziasztok.
Adódott egy kis problémám, amire nem találtam választ.
Adott egy OLED kijelző, pontosan ssd1306 i2c, amihez az Adafruit ssd1306 könyvtárat használom, plusz egy NRF24L01 (RF24 TMRh20 lib + RF24Network szintén TMRh20 lib) és egy DHT22 szenzor, szintén Adafruit lib.
A problémám, hogy a három könyvtár nem működik egyszerre.
Szeretném megjeleníteni a hőmérsékletet az Oled kijelzőn és elküldeni az RF egységgel, de ez sajnos nem megy.
  1. #include <Wire.h>
  2. #include <Adafruit_GFX.h>
  3. #include <Adafruit_SSD1306.h>
  4. #include <DHT.h>
  5. #include <Fonts/FreeSerifBold9pt7b.h>
  6. #include <RF24Network.h>
  7. #include <RF24.h>
  8. #include <SPI.h>
  9.  
  10. #define SCREEN_WIDTH 128 // OLED display width, in pixels
  11. #define SCREEN_HEIGHT 64 // OLED display height, in pixels
  12.  
  13. Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
  14.  
  15. #define DHTPIN A0
  16. #define DHTTYPE    DHT22     // DHT 11 / DHT22
  17.  
  18. DHT dht(DHTPIN, DHTTYPE);
  19.  
  20. RF24 radio(10,9);
  21. RF24Network network(radio);
  22. void setup() {
  23.  
  24.   Serial.begin(9600);
  25.   dht.begin();
  26.   SPI.begin();
  27.  
  28.   radio.begin();
  29.   network.begin(90, this_node);
  30.   radio.setDataRate(RF24_2MBPS);
  31.  
  32.   if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
  33.     Serial.println(F("SSD1306 allocation failed"));
  34.     for(;;);
  35.   }
  36.   delay(1000);
  37.  
  38. }

Ha kiveszem a programból az RF könyvtárakat, a hőmérséklet rendben megjelenik a kijelzőn. Ha kiveszem az oled könyvtárát, az RF modul rendben elküldi a hőmérséklet adatot, de a két könyvtár nem megy együtt. Ezért gondolom, hogy az Adafruit és a TMRh könyvtárakban kellene keresni a hibát, de sajna én nem találtam semmit.
Esetleg találkozott már valaki ilyen hibával?
(#) gyula84 válasza benjami hozzászólására (») Feb 5, 2020 /
 
Ma is tanultam valamit köszi
Köszi neked is Bakman
(#) tbarath válasza szitko hozzászólására (») Feb 5, 2020 /
 
A neten találni olyat, hogy arduino-n összeakadt a SPI és az I2C, de triviális megoldást gyorsan nem találtam.
(#) asch válasza szitko hozzászólására (») Feb 6, 2020 /
 
A hardveres SPI-nek és I2C-nek külön lábai vannak és külön vezérlőjük is van. Tehát valami más akad össze, nem az SPI az I2C-vel. Egy pár lehetőség:

* A libek egyéb hadrvert használnak egymást kizáró módon. Pl: időzítőket, vagy pin change interruptot.
* Betelt a RAM! Az OLED, ha pixelenként dolgozik, akkor sokat befolalhat. Amit én használtam, az pl 512 bájtot használt, mert annyi pixel volt, de egy kétszer nagyobb már 1k lenne. Fordítás végén az Arduino logokban lehet látni, hogy mennyi RAM van foglalva.
* Van bennük némi időzítési kényszer, amit együtt már nem tudnak teljesíteni.

Meg kell nézegetni a kódokat, hogy miket használnak.
(#) Lamprologus hozzászólása Feb 6, 2020 /
 
Soros porton érkezik 4 bytes, ami egy float szám. Hogyan tudom ezt betenni egy float változóba? (ESP8266, arduino ide )
A hozzászólás módosítva: Feb 6, 2020
(#) usane válasza pipi hozzászólására (») Feb 6, 2020 /
 
Az u.nion-t ne írd egybe valamiért nem szereti a fórummmotor.
(#) usane válasza Lamprologus hozzászólására (») Feb 6, 2020 / 2
 
Látom vargham meg pipi fórumtárs nem boldogul a u.nion-al. Van több lehetőséged is. Az egyik amit ők akartak írni, a u.nion-os.(u.nion pont nélkül, csak a fórummotor kiszedi). Egy másik megoldás pl. pointeres.
A pointeres valahogy így néz ki:
  1. byte rawData[4];
  2.       rawData[0] = Serial.read();
  3.       rawData[1] = Serial.read();
  4.       rawData[2] = Serial.read();
  5.       rawData[3] = Serial.read();
  6.       float flData = *((float*)(rawData));
  7. vagy az utlosó sor helyett:
  8. float valami;
  9. valami = (rawData[3] << 24) | (rawData[2] << 16) | (rawData[1] << 8) | rawData[0]

A u.nuinos meg valami ilyesmi:
  1. u.nion u_thing
  2. {
  3.   byte rawData[4];
  4.   float num;
  5. } u;
  6.  
  7.  
  8.   u.rawData[0] = Serial.read();
  9.   u.rawData[1] = Serial.read();
  10.   u.rawData[2] = Serial.read();
  11.   u.rawData[3] = Serial.read();
  12.  
  13.   float valami = u.num;
  14.  
  15. }

A "." a "u.nion"-ban sehol nem kell. Az csak a fórummmotor miatt van benne.
(#) vargham hozzászólása Feb 6, 2020 /
 
Vicces a fórum motor... U N I O N
(#) pipi válasza usane hozzászólására (») Feb 6, 2020 /
 
Hogy Te milyen ügyi vagy, az üres levélből kitaláltad hogy mit írtam
Észre sem vettem, mobilról küldtem, nem is ellenőriztem megjelenik-e
(#) sargarigo válasza pipi hozzászólására (») Feb 6, 2020 /
 
Az hagyján hogy a "mit" kitalálta (bár már ehhez is parafenomén kell legyen), de rögtön a megoldást is írta a problémádra, még ugyanabban a mondatban!
Szerk.: Sőt! Mielőtt még te magad tudtad volna hogy problémád van
A hozzászólás módosítva: Feb 6, 2020
(#) sargarigo válasza sargarigo hozzászólására (») Feb 6, 2020 /
 
Kipróbáltam én is, érdekes!
Szerk.: Mármint az u niont
A hozzászólás módosítva: Feb 6, 2020
(#) usane válasza sargarigo hozzászólására (») Feb 6, 2020 /
 
Csak azért mert már belefutottam a problémába én is
És tudtam, hogy a kérdésre nagyjából milyen válaszok lehetnek
Valószínűleg, az E.U. miatt, hogy a politikát kizárja, de nem kéne az egész hozzászólást törölni csak kihúzni az adott szót, vagy ha van mögötte még betű akkor ne húzza ki, de gondolom csak egy egyszerű keresőmotor.
(#) szitko válasza asch hozzászólására (») Feb 6, 2020 /
 
Köszi a válaszokat. Ezeken már nagyából túlvagyok.
Még az időzítéseket megnézem, aztán feladom. Inkább használok egy másik oled könyvtárat. Az U8G-vel megy együtt a két (három) modul.
Igazából bosszant, hogy egy problémát nem sikerül megoldan, de vígasztal, hogy az Arduino fórumon se tudták ugyan ezt megoldani. Ott is másik lib lett a vége.
(#) jocka0012 hozzászólása Feb 6, 2020 /
 
Üdv!
Azt szeretném kérdezni, hogy egy mezei szervo képes működni egy 3v3-as pro minivel?Táp és a pwm jel is 3.3V.
Köszönöm a segítségeteket!
(#) pipi válasza jocka0012 hozzászólására (») Feb 6, 2020 /
 
Nyilván attól függ mennyire "mezei" a szervó vagyis hány voltos tápról hajlandó működni.
A mini 3V3 kimenő pwmje szerintem elég neki, de a táp - ki tudja?
(#) asch válasza jocka0012 hozzászólására (») Feb 6, 2020 /
 
Hány éves a kapitány?

Milyen szervó? Rengeteg féle van. Alapvetően olyan feszültséggel és árammal kell táplálni, amit a gyártó mond. Néha működik kisebbel-nagyobbal is, de ezt pontos típus alapján senki nem fogja megmondani.

Mi az, hogy működik vele? A PWM-mel tudja-e vezérelni? A legtöbb 5V TTL logikai bemenet 3V-ra már magasat érzékel, ezért az 5V-os logikai bemeneteket általában lehet 3V-os jelszintű kimenettel vezérelni. Közös legyen a GND, és akkor menni fog. Ha biztosra akarsz menni, akkor természetesen adatlapot kell nézni.

Az Arduino tápja megtáplálja-e szervót is? Szerintem általában rossz ötlet az Arduino-k táp pinjeiről táplálni szervókat. De neten egy csomó ilyen hibás tutorialt lehet látni. Még olyat is láttam, ahol adatlap szerinti értékek szerint annyi áramot kér a szervó, amennyit az Arduino pinről nem lehet levenni. Mégis "működött" és még video tutorial is volt róla.
A hozzászólás módosítva: Feb 6, 2020
(#) Kovidivi válasza asch hozzászólására (») Feb 8, 2020 / 1
 
Főleg, hogy a 3.3V a CH340 IC-ről jön, ami kb. 50mA-t tud csak, a szervó pedig szereti a nagy áramot magába szívni, főleg mikor megmozdul.
(#) Massawa hozzászólása Feb 10, 2020 /
 
Egy kis segitség kellene az optimális kodhoz ( az Arduino nyelv még mindig nem megy olyan jol, mint az ASM. ).
Szoval van egy 1602 displayem.
Oda kellene beolvasni négy darab 4 illetve 2 jegyü számokat.
Ha bekapcsolom az lcd.blink(); -t majd meg beirom a kurzor poziciot a mellette levö kocka villog (nem az amit megcimezek. Pl. ha a cim lcd.setCursor(0,1) akkor a második sor második kockája villog.
Van 3 (esetleg 4) nyomogombom. Az eredeti ötlet az volt, hogy egy gombbal helyenként adhatom be a számot (0-9) mondjuk az ezreseket,majd egy másik gombbal egy hellyel arrébb ugrok és a százasokat majd a tizeseket és végül az egyeseket.
Valahogy a villogás nem akarja követni. A kod kb igy néz ki: ( most fejböl irom, nincs itt a PC

  1. Lcd.setCursor(0,n);      // n a pozicio, ahol a beadott szám helye lenne 0-3 pl az elsö 4 jegyü szám
  2. Lcd.blink();
  3. If (!digitalRead(white){      // ha megnyomom a while gombot a szám eggyel növekszik
  4. delay(300);
  5. Count++;           // minden gombnyomással eggyel nagyobb a szám
  6. }
  7. If (Count >9){
  8. Count=0;            // a bevitt szám 0-9 között lehet
  9. }
  10.  
  11. A=Count*1000;   // itt vannak az ezresek. A következö helyen a százasok jönnek B=Count*100 A=A+B. Stb. A 4. Szám után kialakul a végleges szám

Ez a része a kodnak müködik, csak nem tudom összehangolni a display villogásával
Van 2 másik gomb kék meg zöld amivel jobbra balra léptetem a kurzort ( n szám), de valahogy nem ugy megy, ahogy szeretném.

Kösz
(#) tbarath válasza Massawa hozzászólására (») Feb 10, 2020 /
 
Az lcd.cursor működik rendesen?
(#) Massawa válasza tbarath hozzászólására (») Feb 10, 2020 /
 
Az müködik, az elsö sorban a szöveget szépen kiirta, a másik sorba meg a fixen beirt számokat is oda irta ahova kellett;
Ez van pl a második sorban
9999 88 77 66

Nos az also sor számait kell most egyenként beirni.

A szám bevitele megy de még meglehetösen bonyolult, azt fogom az éjjel tisztitani. De a villogo izé az mindig a szám mellett villog és nem ott ahova a számot akarom bevinni. Mintha valami összefüggés lenne a bevitt tartalommal vagy valamitöl eggyel arrébb ugrik és ott villog.
A hozzászólás módosítva: Feb 10, 2020
(#) tbarath válasza Massawa hozzászólására (») Feb 10, 2020 /
 
Kiírod, és akkor ugrik odébb? Mert akkor pozícionálj vissza, mozgatja a cursort.

Nem SetCursor(), hanem Cursor(). Elvileg van némi összefüggés a Blink és a Cursor között, de mélyebben nem mentem utána.
A hozzászólás módosítva: Feb 10, 2020
(#) Rober_4 válasza Rober_4 hozzászólására (») Feb 11, 2020 /
 
Most néztem maga az áramkör(vs1053b) eleve 12MHz-es kvarcot tartalmaz. Így nem is értem hogy gondolják a 43MHz-et. Lehet ha külön áramkörbe teszem a chippet, akkor hajthatom magasabb órajellel. Az már egy másik kérdés, hogy miért nem járatják olyan frekvencián az áramkört, amelyiken tényleg használható teljesítményre képes, és akár minőségi eszköz lenne...
(#) rolandgw válasza Rober_4 hozzászólására (») Feb 11, 2020 /
 
Idézet:
„Így nem is értem hogy gondolják a 43MHz-et.”

PLL, adatlap 64. oldal.
Következő: »»   588 / 840
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