Fórum témák

» Több friss téma
Fórum » Arduino
 
Témaindító: groening, idő: Szept 28, 2008
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   584 / 584
(#) asch válasza mnyugger hozzászólására (») Vas, 17:40 /
 
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 (») Vas, 19:30 /
 
Én kb 160-t kapcsolgatok egy Nanoval. Csak egy csomo port extender kell .
(#) Rober_4 válasza Massawa hozzászólására (») Vas, 22:25 /
 
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 (») Vas, 22:51 / 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 (») Vas, 22:53 / 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: Vas, 22:54
(#) Rober_4 válasza tbarath hozzászólására (») Vas, 23:29 /
 
Köszönöm, lcd kijelzős van is itthon!
(#) roland9 hozzászólása Hé, 10:44 /
 
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 (») Hé, 10:52 / 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 (») Hé, 10:55 / 1
 
Valahogy így?
myGLCD.print(String(Volt), 275,85);
(#) roland9 válasza GPeti1977 hozzászólására (») Hé, 11:08 /
 
Köszi, igen így működik.
Erre nem gondoltam
(#) usane hozzászólása Hé, 11:38 /
 
Ü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 (») Hé, 11:57 /
 
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 (») Hé, 11:59 /
 
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 (») Hé, 12:20 /
 
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 (») Hé, 12:20 /
 
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 (») Hé, 12:23 /
 
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 (») Hé, 12:34 /
 
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: Hé, 12:36
(#) usane válasza sargarigo hozzászólására (») Hé, 12:47 /
 
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 (») Hé, 13:02 /
 
Így működik.
Köszönöm !
(#) atiotezer hozzászólása Hé, 16:06 /
 
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 (») Hé, 16:11 / 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: Hé, 16:12
(#) GPeti1977 válasza atiotezer hozzászólására (») Hé, 16:27 / 1
 
Jó lesz így
(#) atiotezer válasza Kera_Will hozzászólására (») Hé, 16:54 /
 
Szia.

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

Köszönöm.
(#) tbarath válasza usane hozzászólására (») Hé, 17:02 /
 
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 (») Hé, 17:11 /
 
É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.
Következő: »»   584 / 584
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu