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   584 / 838
(#) asch válasza mnyugger hozzászólására (») Jan 19, 2020 /
 
Igen, amit én írtam ott nem lehet a fényerőt külön szabályozni. Sok digites 7-szegmenses kijelzőkhöz szokás ilyet építeni például.
(#) Massawa válasza Scooter1986 hozzászólására (») Jan 19, 2020 /
 
Én kb 160-t kapcsolgatok egy Nanoval. Csak egy csomo port extender kell .
(#) Rober_4 válasza Massawa hozzászólására (») Jan 19, 2020 /
 
Nem találtam port extendert a Hestore-ban, pedig nekem is jól jönne, ha 2msec-en belül képes kapcsolni...
(#) tbarath válasza Rober_4 hozzászólására (») Jan 19, 2020 / 1
 
Bővebben: Link
Bővebben: Link
Bővebben: Link
Az adatlapokon meglátod, hogy hogy kapcsol, szerintem a 2 ms nem nagy elvárás.
(#) Massawa válasza Rober_4 hozzászólására (») Jan 19, 2020 / 1
 
Szerintem azt mindegyik tudja pl.PCF8574

Ezt használom én is meg a PCF8575st (16 bites).
Modulban ( készen) venni olcsobb.
A hozzászólás módosítva: Jan 19, 2020
(#) Rober_4 válasza tbarath hozzászólására (») Jan 19, 2020 /
 
Köszönöm, lcd kijelzős van is itthon!
(#) roland9 hozzászólása Jan 20, 2020 /
 
Sziasztok,
Egy olyan problémám lenne, hogy vettem egy 7 inch-es érintős kijelzőt.
Sima szöveget simán meg tudom jeleníteni a kijelzőn, de ha egy értéket szeretnék kiiratni vele akkor csak egy kockát rajzol ki (lásd csatolt kép).
Lenne valakinek valami ötlete?

  1. #include <UTFT.h>
  2. #include <UTouch.h>
  3.  
  4. int Volt;
  5.  
  6. UTFT myGLCD(SSD1963_800480,38,39,40,41);  //(byte model, int RS, int WR, int CS, int RST, int SER)
  7. UTouch  myTouch( 43, 42, 44, 45, 46);  //byte tclk, byte tcs, byte din, byte dout, byte irq
  8.  
  9. extern uint8_t BigFont[];
  10.  
  11. void setup() {
  12.   Serial.begin(9600);
  13.   pinMode(8, OUTPUT);
  14.   digitalWrite(8, HIGH);
  15.   myGLCD.InitLCD();
  16.   myGLCD.clrScr();
  17.   myTouch.InitTouch();
  18.   myGLCD.setFont(BigFont);
  19.  
  20. }
  21.  
  22. void loop() {
  23.   uint8_t Volt_ = 0;
  24.   Volt = 10;
  25.   myGLCD.setBackColor (0, 0, 255);
  26.   myGLCD.print(Volt, 275,85);
  27.   Serial.println(Volt);
  28.  
  29. }
(#) tbarath válasza roland9 hozzászólására (») Jan 20, 2020 / 2
 
Nem ismerem az adott libet, de nem lehet, hogy csak string-et tud kiírni? Mert akkor string-gé kellene konvertálni. Ha a Volt változó értéke 26, akkor mit ír ki a fenti kód?
(#) GPeti1977 válasza tbarath hozzászólására (») Jan 20, 2020 / 1
 
Valahogy így?
myGLCD.print(String(Volt), 275,85);
(#) roland9 válasza GPeti1977 hozzászólására (») Jan 20, 2020 /
 
Köszi, igen így működik.
Erre nem gondoltam
(#) usane hozzászólása Jan 20, 2020 /
 
Üdv!
Kis problémába ütköztem a tömbökkel. Van 7 Nextion text objektumom. Ezeknek szeretnék értéket küldeni ciklusban.
  1. NexText N_temp1_t(0, 4, "temp1");
  2.  NexText N_temp2_t(0, 10, "temp2");
  3.  NexText N_temp3_t(0, 16, "temp3");
  4.  NexText N_temp4_t(0, 22, "temp4");
  5.  NexText N_temp5_t(0, 28, "temp5");
  6.  NexText N_temp6_t(0, 34, "temp6");
  7.  NexText N_temp7_t(0, 40, "temp7");

Ezt szeretném tömbbe rendezni, hogy ciklusban kezelhető legyen.
Tehát valami ilyesmit szeretnék:
  1. char N_temp_t[7] = {N_temp1_t, N_temp2_t, N_temp3_t, N_temp4_t, N_temp5_t, N_temp6_t, N_temp7_t  };

Hogy a for változójával tudjak nekik értéke adni 7 db if helyett.
Hogy tudom ezt megoldani, mert ahogy írtam ugye úgy nem lehet, mert a NexText az egy librarinak egy objektuma amit csatoltam, ha az segít.
(#) GPeti1977 válasza usane hozzászólására (») Jan 20, 2020 /
 
Nem próbáltam meg nem biztos hogy jó de valahogy így lehetne:
for(int i = 0; i <7; i++){
NexText N_temp1_t(0, 4+i*4, temp[i]);
}
(#) tbarath válasza GPeti1977 hozzászólására (») Jan 20, 2020 /
 
Ez szerintem String objektumot csinál, ami kicsit megnöveli az erőforrásigényt - már ha máshol, más miatt nem használja már amúgy is. Én inkább felvennék egy char tömböt, és itoa() függvénnyel konvertálnám bele a kiírandót, majd azt írnám ki.
(#) usane válasza GPeti1977 hozzászólására (») Jan 20, 2020 /
 
Nem egészen értem mit akarsz ezzel mondani. Szerintem félreértetted.
Ami a NexText változó után zárójlben van az a Nextion oldalszáma, objektum azonosítója és neve. Azzal nem tudok mit kezdeni azt így kell definiálni a Nextion libnek.
Utána N_temp1_t.setText() , ugyanez temp2....utasítással tudok értéket küldeni a Nextionnak.
De ez így sok if, vagy switch case ami kevesebb gépelés de ugyanugy if.

tbarath: Vagyis azt javaslod hanyagoljam a libet és írjak egy saját funkciót?
Megtehetem, de akkor írhatok ujra mindent amit most kezel a lib, adatlekérdezést, touch figyelést...
(#) sargarigo válasza usane hozzászólására (») Jan 20, 2020 /
 
NexText-ből nem tudsz tömböt csinálni? Mindenféléből lehet, nem látom hogy ebből miért ne lehetne. Mondjuk az arduino butább mint ami nyelvekhez szokva vagyok, de szerintem próbáld meg így!
(#) usane válasza sargarigo hozzászólására (») Jan 20, 2020 /
 
Már kipróbáltam, azért jöttem kérdezni
Erre:
Idézet:
„char N_temp_t[7] = {N_temp1_t, N_temp2_t, N_temp3_t, N_temp4_t, N_temp5_t, N_temp6_t, N_temp7_t };”

Ez a hibaüzenet:
cannot convert 'NexText' to 'char' in initialization
(#) sargarigo válasza usane hozzászólására (») Jan 20, 2020 /
 
Szerintem itt az lehet, hogy csak cimkét tettél a zárójelek közé, nincs memóriafoglalás a címekhez.
Csak gondolatébresztésnek (nincs a közelemben arduino). Javaban úgy van, hogy ha nem "gyári" változót teszel tömbbe, akkor egyesével fel kell tölteni őket a "new" utasítással.
char N_temp_t[7] = {new NexTemp(...
Valami ilyesmire gondolok, de szerintem ez már meghaladja az arduino képességeit. De hátha a gondolatmenet jófelé terel!

Szerk: Ja, ha NexText a változó, akkor abból hogy akarsz char-t csinálni? NexText N_temp_t[7] kell oda nem?
A hozzászólás módosítva: Jan 20, 2020
(#) usane válasza sargarigo hozzászólására (») Jan 20, 2020 /
 
Az egyenként értékadásra én is gondoltam. Mindjárt kipróbálom a NexText N_temp_t[7]-t is.
(#) usane válasza sargarigo hozzászólására (») Jan 20, 2020 /
 
Így működik.
Köszönöm !
(#) atiotezer hozzászólása Jan 20, 2020 /
 
Sziasztok.

Az lenne a kérdésem, hogy egy Arduino Nano-t zavarja -e, ha a bemenetére LED van kapcsolva? A gombot megnyomom akkor világítana a LED. A program digitalRead-ot használ, csak azt nézi, hogy a nyomógomb meg van -e nyomva.


Másik kérdés. egy 12V-os 68mA áramfelvételű reléhez elegendő -e egy 1N4148-as dióda.
(Ez van itthon, így nem kellene rendelnem alkatrészt.)
Naponta max 10 alkalommal kapcsol a relé.

Előre is köszönöm.
(#) Kera_Will válasza atiotezer hozzászólására (») Jan 20, 2020 / 1
 
Oda inkább egy legalább 100mA Icjű tranzisztor is kellene a diódán kívül.+ 5-20k körüli soros ellenállás a bázisra.
Az kapcsolja majd a relé áramát.
Max 10 - 15 mA lehet 1 uC port lábat terhelni, ehhez még hozzá jön a uC teljes disszipációja is mint határérték.
Az 1N4148 bőven jó visszarugás gátlónak.
A hozzászólás módosítva: Jan 20, 2020
(#) GPeti1977 válasza atiotezer hozzászólására (») Jan 20, 2020 / 1
 
Jó lesz így
(#) atiotezer válasza Kera_Will hozzászólására (») Jan 20, 2020 /
 
Szia.

Természetesen tranzisztor vezérli a relét.

Köszönöm.
(#) tbarath válasza usane hozzászólására (») Jan 20, 2020 /
 
Nem javaslok én semmit, csak a String osztály használata több erőforrást igényel, mint a "mezei" string, azaz a karaktertömb, és a hozzá való függvényeké. Ha amúgy is használod a String osztályt, akkor minimális az előnye az átírásnak. Ha csak ehhez a kiíratóshoz használnád, és "ki van centizve" az erőforráshasználat, akkor célszerű átírni.
Ami amúgy csak erre nem egy nagy történet, valahol az elején fel kell venni egy char[6] tömböt, aztán a kiíratás valami ilyesmi lenne:
  1. tmp=itoa(Volt,tmp,10);
  2. myGLCD.print(tmp, 275,85);
(#) usane válasza tbarath hozzászólására (») Jan 20, 2020 /
 
Értem. PIC-en használtam az itoa-t, az esp-ben van erőforrás. Amúgy nem én használom a stringet hanem a lib. Én is jobb szeretem a karaktertömböt.
Mindenesetre köszönöm a javaslatot.
(#) usane hozzászólása Jan 22, 2020 /
 
Üdv!

Új kérdés.
Van egy funkcióm (library) ami int32_t-t ad vissza. A funkciót tömbösítettem, és szeretném a visszaadott értéket is tömbelemekbe rakni.
lásd.
  1. Set_v[j].getValue(Mod_SET_State[j])

Jól sejtem, hogy oda egy címképző operátor kell?
vagyis így jól fog működni?:
  1. Set_v[j].getValue(&Mod_SET_State[j])
(#) Lac364 válasza roland9 hozzászólására (») Jan 23, 2020 /
 
Igy próbáld.
  1. #include <UTFT.h>
  2. #include <UTouch.h>
  3.  
  4. int Volt;
  5.  
  6. UTFT myGLCD(SSD1963_800480,38,39,40,41);  //(byte model, int RS, int WR, int CS, int RST, int SER)
  7. UTouch  myTouch( 43, 42, 44, 45, 46);  //byte tclk, byte tcs, byte din, byte dout, byte irq
  8.  
  9. extern uint8_t BigFont[];
  10.  
  11. void setup() {
  12.   Serial.begin(9600);
  13.   pinMode(8, OUTPUT);
  14.   digitalWrite(8, HIGH);
  15.   myGLCD.InitLCD();
  16.   myGLCD.clrScr();
  17.   myTouch.InitTouch();
  18.   myGLCD.setFont(BigFont);
  19.  
  20. }
  21.  
  22. void loop() {
  23.   uint8_t Volt_ = 0;
  24.   Volt = 10;
  25.   myGLCD.setColor(255, 127, 0);
  26.   myGLCD.setBackColor (0, 0, 0);
  27.   myGLCD.print("Volt", 200,85);
  28.   myGLCD.printNumI(Volt, 275,85);
  29.   Serial.println(Volt);
  30.  
  31. }

Vagy igy:
  1. #include <UTFT.h>#include <EEPROM.h>
  2. UTFT myGLCD(SSD1963_800480, 38, 39, 40, 41);
  3. extern uint8_t BigFont[];
  4.  
  5.  
  6. byte h = 23, m = 59, s = 50; byte c, d, e, f = 60, g = 0;
  7. static uint32_t a, b;
  8.  
  9. unsigned long time;
  10.  
  11. void setup()
  12. {
  13.   myGLCD.InitLCD();
  14.   myGLCD.clrScr();
  15.   myGLCD.setColor(100, 0, 0);
  16.  
  17.   myGLCD.fillRect(0, 0, 800, 480);
  18.   pinMode(8, OUTPUT);  //backlight
  19.   digitalWrite(8, HIGH);//on
  20. }
  21. void loop()
  22. {
  23.  
  24.   // -------------------------------------------------------------
  25.  
  26.  
  27.   g = 0;
  28.   myGLCD.setFont(BigFont);
  29.   myGLCD.setColor(255, 127, 0); // LCD write.
  30.   myGLCD.setBackColor (0, 0, 0);
  31.   myGLCD.printNumI(h,  20, 20, 2, '0');
  32.   myGLCD.print(":", 84, 20);
  33.   myGLCD.printNumI(m, 114, 20, 2, '0');
  34.   myGLCD.print(":", 178, 20);
  35.   myGLCD.printNumI(s, 210, 20, 2, '0');
  36.  
  37.  
  38.   // LCD write end.
  39.  
  40.   b = a; time = millis(); a = time / 993.53; c = a - b;  // Time seconds calculation.
  41.  
  42.   if (c >= 1) {                              //      seconds OPEN
  43.     s = s + c;
  44.  
  45.     if (s >= f) {                          // ---- seconds
  46.       d = s - f; s = 0; s = s + d; d = 0;  // ---- seconds overflow protection
  47.       m = m + 1;
  48.     }
  49.     if (m >= f) {                          // ---- minutes
  50.       e = m - f; m = 0; m = m + e; e = 0; // ---- minutes overflow protection
  51.       h = h + 1;
  52.     }
  53.     if (h == 24) {                         // ---- hours
  54.       h = 0;
  55.     }
  56.   }
  57.  
  58.   /* if (h >= 23 && m >= 59 && s == 54 )
  59.     {
  60.     }*/
  61.  
  62. }   //PROGRAM END
  63. //Serial.print(time);Serial.print(":");Serial.print(a);Serial.print(":");Serial.print(b); Serial.print(":");Serial.println(c);
(#) Lac364 válasza roland9 hozzászólására (») Jan 23, 2020 /
 
UTFT.Pdf

UTFT.pdf
    
(#) sargarigo válasza usane hozzászólására (») Jan 23, 2020 /
 
Én azt gondolom hogy nem kell oda, de feltételezem hogy oka van annak hogy kérdezed. Szerintem próbáld ki!
Ha nincs más hiba, akkor az elsőnek mennie kellene gondolom.
(#) usane válasza sargarigo hozzászólására (») Jan 23, 2020 /
 
Igen, azért kérdeztem mert az első-re hibád dobott. A címképző oppal jó lett. Belenéztem a getvalue függvénybe és int32 mutató van benne, így jöttem rá, hogy mi kell neki.
Következő: »»   584 / 838
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