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   403 / 853
(#) vargaf válasza jointsilver36 hozzászólására (») Dec 3, 2017 /
 
Egy erre írt program.
(#) tbarath válasza vargaf hozzászólására (») Dec 3, 2017 /
 
Igen, van egy hiba a letölthető kódban azon az oldalon, amit linkeltél.
(#) RoliNyh válasza tbarath hozzászólására (») Dec 3, 2017 /
 
Elvileg ezt.: TFT_ST7735-master vagyis a mappa neve ez.
Mondjuk a fonts mappában elég sokminden van...
(#) vargaf válasza tbarath hozzászólására (») Dec 3, 2017 /
 
Én nem linkeltem semmit sem, így nem lehet hibás a linkem.
(#) tbarath válasza RoliNyh hozzászólására (») Dec 3, 2017 /
 
Hát ebből lehet hogy lehetne irtani...
(#) jointsilver36 válasza tbarath hozzászólására (») Dec 3, 2017 /
 
Mi a megoldás ,hogy ne kelljen semmit változtatni rajta ,mármint kódon.
(#) jointsilver36 válasza vargaf hozzászólására (») Dec 3, 2017 /
 
Akkor áramkört is másikat kéne csinálnom amihez nincs humorom.
(#) tbarath válasza vargaf hozzászólására (») Dec 3, 2017 /
 
Bocsánat, szokatlan (és logikátlan) nekem az, hogy a komment tetején van a válasz link, és néha mellényúlok és a következő kommentre válaszolok. Igyekszem figyelni erre, de néha belefutok.
jointsilver36 linkelte itt (link).
(#) RoliNyh válasza csatti2 hozzászólására (») Dec 3, 2017 /
 
A baj ezzel, hogy LQFP tokozású, azt már nemigzán vállalnám be.
Egyébként ilyen tokos akár atmega328 is van (vagyis az TQFP de már az is sűrű lábú)...

Minimum 1.27mm lábkiosztású tokban kellene valami megoldás ha lehetséges, annál kissebbet nemnagyon akarok ha nem muszáj...
(#) tbarath válasza jointsilver36 hozzászólására (») Dec 3, 2017 /
 
Vagy:
- veszel egy i2c-s 1602 meghajtót, pl: Link, és összerakod a kijelződdel (HEStore link)
- veszel egy kijelzőt egybeépítve, pl: Link, és ezt használod
- vagy átmadzagolod úgy ahogy linkeltem és kicseréled azt a 2 sort amit írtam arra 2-3 sorra, amit írtam.

Szerintem az utóbbi a leggyorsabb és legegyszerűbb.
A hozzászólás módosítva: Dec 3, 2017
(#) vargaf válasza jointsilver36 hozzászólására (») Dec 3, 2017 /
 
Akkor hogyan kötötted be ezt a kijelzőt az I2C vezérléshez? Nagyon eltérő a két kijelző bekötése. Ha a kapcsláshoz ragaszkodsz akkor vegyél hozzá I2C kijelzőt.
(#) RoliNyh válasza tbarath hozzászólására (») Dec 3, 2017 /
 
Van egy ilyen is, de ezt nem tudom be #include -olni most hirtelen, hiába teszem elé az "u" betűt,
lehet nem jól van telepítve...

Pedig ezt direkt azért töltöttem le, mert elvileg kissebb...
(#) RoliNyh válasza RoliNyh hozzászólására (») Dec 3, 2017 /
 
Már úgy értem az.:
  1. #include <uTFT_ST7735.h>

nem tetszik neki...
Idézet:

Arduino: 1.8.3 (Windows 7), Alaplap:"Arduino/Genuino Uno"

eBikeBatteryChargerDisplay:26: error: 'TFT_ST7735' does not name a type

TFT_ST7735 tft = TFT_ST7735(__CS, __DC, __RST); // Kijelző inicializálása.

^

D:\_Arduino_1.8.3_\Projekt\eBikeBatteryChargerDisplay\eBikeBatteryChargerDisplay.ino: In function 'void setup()':

eBikeBatteryChargerDisplay:35: error: 'tft' was not declared in this scope

tft.begin(); // Képernyő bekapcsolása.

^

D:\_Arduino_1.8.3_\Projekt\eBikeBatteryChargerDisplay\eBikeBatteryChargerDisplay.ino: In function 'void loop()':

eBikeBatteryChargerDisplay:64: error: 'tft' was not declared in this scope

tft.fillScreen(BLACK); // Háttérszín beállítása feketére.

^

exit status 1
'TFT_ST7735' does not name a type

Ennek a jelentésnek több információja lehetne
a "Bővebb kimenet mutatása fordításkor"
opció engedélyezésével a Fájl -> Beállítások-ban.



Már az is gyanús, hogy az IDE ki sem sárgítja mint az előző #include -okat...
A hozzászólás módosítva: Dec 3, 2017
(#) tbarath válasza RoliNyh hozzászólására (») Dec 3, 2017 /
 
Belül is át kellene nevezned szerintem jónéhány helyen.
De az nem lenne jó, ha az "eredeti" adafruit lib-et használnád, és azt a pár dolgot amit ki akarsz írni azt megoldanád bitmap-ből?
Akár úgy is, hogy az eredeti lib által kiírt cuccot "nyúlod", és abból lesz a bitmap.
(#) tbarath válasza RoliNyh hozzászólására (») Dec 3, 2017 /
 
Nem, mert nézz bele abba a uTFT_ST7735.h-ba és uTFT_ST7735.c-be
(#) RoliNyh válasza tbarath hozzászólására (») Dec 3, 2017 /
 
Mint már említettem, nem tudom mit kellene kivenni az eredeti libből,
és ezt a bitmap-es dolgot nem is értem...

A uTFT_ST7735 fájlokba belenéztem, de mit is kellene ott keresnem azt sem tudom sajna...
(#) jointsilver36 válasza tbarath hozzászólására (») Dec 3, 2017 /
 
Esetleg olyan kijelzőt nem tudsz nekem linkelni amivel működik és van a hestorban?Köszi
(#) tbarath válasza RoliNyh hozzászólására (») Dec 3, 2017 /
 
A bitmap-es téma: tehát azt mondod a lib-nek, hogy írja ki az "a" betűt. Ez a betű egy fonttal írja aki, ami minden egyes karakterhez tartalmaz egy X*Y pixeles leírást, hogy hogy az adott pixelt háttérszínre vagy betűszínre kell kapcsolni. Na ez egy bitmap.
Ha pl. egy 200x100 px kijelzőre kiírsz összesen 20 féle betűt, akkor lehet jobban járnál, ha egy általános libet használnál ami csak bitmap-eket tud kirakni, és megírnád hozzá a saját betűíró fv-eket, mintha egy "full" libet használnál, amiben van minden olyan dolog, ami az adott feladathoz képest fölösleges dolgot tartalmaz.

Mit keress:
Itt van pl. ez (link). Igaz ez C++ és nem C, de itt pl. ilyen sorok vannak a függvényneveknél:
  1. TFT_ST7735::TFT_ST7735(int16_t w, int16_t h)

Tehát a lib neve be van hivatkozva mindenhová, ezeket is át kellene írni átnevezésnél.
(#) tbarath válasza jointsilver36 hozzászólására (») Dec 3, 2017 /
 
Nem találtam, persze lehet h rosszul kerestem.
De az a kijelző amit keresel, az pont ugyanaz mint ami neked van, rajta pont azzal a modullal, amit a hestore-ból linkeltem. Egy kb. 15 tűs tüskesorral kell őket összekötni.
(#) jointsilver36 válasza tbarath hozzászólására (») Dec 3, 2017 /
 
Ezzel működni fog ?Amit linkeltél?
(#) RoliNyh válasza tbarath hozzászólására (») Dec 3, 2017 /
 
Ez a "saját betükiíró függvény" megírása nekem nem menne...

Sajna nemnagyon találok benne hasonlót.
De itt van mellékeltem, ha van kedved nézz bele...

(Mára viszont OFFoltam magam, majd kedden leszek újra...)
(#) kapu48 válasza jointsilver36 hozzászólására (») Dec 3, 2017 /
 
Először tisztázni kellene a fogalmakat!
Az alkalmazásban szereplő:
A TFT_ST7735 : Bővebben: Link
Grafikus kijelző, hozzávaló programmal.

Ezt nem lehet helyettesíteni az általad linkelt, karakteres kijelzővel!

Vagy megveszed az ST7735-öst az eredeti projecthez.
Vagy keresel karakteres kijelzőre írt projectet, a meglevő LCD-hez.

Az ékezetes karakterek SW. megjelenítése, mind a két esetben más téma lenne!
Ami megoldása túlmutat az itteni pár soros lehetőségen
Keresrá a neten!
(#) tbarath válasza kapu48 hozzászólására (») Dec 3, 2017 /
 
Azzal Roli szenved, neki 1602 kell. Itt kezdődött a kaland
A hozzászólás módosítva: Dec 3, 2017
(#) tbarath válasza jointsilver36 hozzászólására (») Dec 3, 2017 /
 
Nézd, garantálni, biztosra ígérni nem tudok semmit.
De használtam ilyen modult, működött - bár az I2C modul és a 1602-es LCD összeforrasztva érkezett Kínából, de ugyanez a cucc, PCF8574 a chip van rajta, ami amúgy egy I2C - 8 bites digitális IO bővítő IC. Megkerestem, szétszedtem, megnéztem, az van rajta. Használtam, működik.

Ha én a helyedben lennék, akkor megvenném. Mármint ha valamiért nem tudnám a rengeteg szabad digitális pint használni az arduinon.
De kijelzőt nem kell venned, ha jól emlékszem azt írtad, hogy 1602-es kijelződ van. A színe nem számít, ha csak ezért vennél. (Bár ez ízlés kérdése, nekem a kék-fehér jobban tetszik, de a zöld-feketével sincs bajom.)
(#) kapu48 válasza tbarath hozzászólására (») Dec 4, 2017 /
 
Moderátorok figyelmébe!
Nagyon kellene a fórumba a hozzászólások felhasználó név szerinti rendezése!
Lehetőség megvalósítása!

A hozzászólás módosítva: Dec 4, 2017
(#) tbarath válasza RoliNyh hozzászólására (») Dec 4, 2017 /
 
eBikeBatteryChargerDisplay:26: error: 'TFT_ST7735' does not name a type
TFT_ST7735 tft = TFT_ST7735(__CS, __DC, __RST);

Így megpróbálnád?
  1. uTFT_ST7735 tft = uTFT_ST7735(__CS, __DC, __RST);
(#) gammabuta válasza csatti2 hozzászólására (») Dec 4, 2017 /
 
A belső referencia feszültség mérésére amit írtál tudnál esetleg egy rövid példát mutatni bekötéssel?
(#) csatti2 válasza gammabuta hozzászólására (») Dec 4, 2017 /
 
A bekötés részt nem értem. Nincs mit bekötni. Az IC-t egyszerűen az akkuról kell üzemeltetni.
Itt egy kódrészlet egy projektemből (3,3V-os lítium gombelem). Ez egy pici asztali karácsonyfa, bekapcsoláskor rövid ideig az elem feszültségtől függően zölden/pirosan világít, Az ADC-t csak erre használja, egyébként lekapcsolja a hardvert, hogy ne használjon energiát (a teljes áramkör nagyjából 0,6uA-t használ standby módban).
  1. static const uint16_t EEMEM ADC_2V4     = 442;
  2.  
  3. void battery_check(void)
  4. {
  5.         uint16_t adc;
  6.         uint16_t adc_2v4 = eeprom_read_word(&ADC_2V4);
  7.         set_color(3); // Blue
  8.         set_led_control(0x0F); // Switch on blue lights as a load
  9.         set_intensity(0x7F);
  10.         PRR &= ~_BV(PRADC);
  11.         _delay_ms(200);
  12.        
  13.         ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); // AVCC as reference, measuring internal 1V1
  14.         ADCSRA = _BV(ADEN) | _BV(ADSC) | _BV(ADIF) | _BV(ADPS1); // ADC enable, start conversion, interrupt flag cleared, prescaler = 4
  15.         while (!(ADCSRA & _BV(ADIF))) {}
  16.         adc = ADC;     
  17.         ADCSRA = _BV(ADEN) | _BV(ADSC) | _BV(ADIF) | _BV(ADPS1); // New conversion     
  18.         while (!(ADCSRA & _BV(ADIF))) {}
  19.         adc = ADC;
  20.         ADCSRA = 0;
  21.         if (adc > adc_2v4) set_color(1); // Red, about 2.4V and bellow
  22.         else set_color(2); // Green
  23.         PRR |= _BV(PRADC);
  24.         _delay_ms(2000);
  25.         set_led_control(0);
  26. }
(#) berkesandor hozzászólása Dec 6, 2017 /
 
Összedobtam egy logger-t INA219-el, és egy 4*20 LCD-vel.
De valamiért a megjelenítés hibás.
Mi okozza ezt?

  1. #include <Wire.h>
  2. #include <INA219.h>
  3. #include <LiquidCrystal_I2C.h>
  4. LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display
  5.  
  6.  
  7.  
  8. #define R_SHUNT 0.1
  9. #define V_SHUNT_MAX 0.075
  10. #define V_BUS_MAX 16
  11. #define I_MAX_EXPECTED 20
  12.  
  13. boolean led=true;
  14.  
  15. // current and voltage readings
  16. float shuntvoltage = 0;
  17. float busvoltage = 0;
  18. float current_A = 0;
  19. float batvoltage = 0;
  20. float power = 0;
  21. float Ah = 0;
  22. unsigned long lastread = 0; // used to calculate Ah
  23. unsigned long tick;         // current read time - last read
  24.  
  25. // different intervals for each Task
  26. int intervalReadData = 50;
  27. int intervalDisplay = 1000;
  28.  
  29. // last taks call
  30. unsigned long previousMillisReadData = 0;
  31. unsigned long previousMillisDisplay = 0;
  32.  
  33. void setup() {
  34.  
  35.   lcd.init();                      // initialize the lcd
  36.   lcd.init();
  37.   // Print a message to the LCD.
  38.   lcd.backlight();
  39.  
  40.   ina219.begin();
  41.   // configure INA219 for averaging at 16 samples (8.51ms)
  42.   ina219.configure(INA219::RANGE_16V, INA219::GAIN_2_80MV, INA219::ADC_16SAMP, INA219::ADC_16SAMP, INA219::CONT_SH_BUS);
  43.   // configure INA219 for averaging at 128 samples
  44.   //ina219.configure(INA219::RANGE_16V, INA219::GAIN_2_80MV, INA219::ADC_128SAMP, INA219::ADC_128SAMP, INA219::CONT_SH_BUS);
  45.   lastread = millis();
  46.   // calibrate INA219 with out shunt values
  47.   ina219.calibrate(R_SHUNT, V_SHUNT_MAX, V_BUS_MAX, I_MAX_EXPECTED);
  48.  
  49.  
  50. /*
  51.   // use timer 1 to launch current reading
  52.   // this is a test only and not sure it works
  53.   Timer1.initialize(READFREQ); // 100ms reading interval
  54.   Timer1.attachInterrupt(readCurrent);
  55. */
  56.   delay(1000);
  57. }
  58.  
  59. void loop() {
  60.  
  61.   // get current time stamp
  62.   // only need one for both if-statements
  63.   unsigned long currentMillis = millis();  
  64.  
  65.   if ((unsigned long)(currentMillis - previousMillisReadData) >= intervalReadData) {
  66.     previousMillisReadData = millis();
  67.     readCurrent();
  68. //    Serial.print("tick:   "); Serial.print(tick); Serial.println(" ms");
  69.   }
  70.   if ((unsigned long)(currentMillis - previousMillisDisplay) >= intervalDisplay) {
  71.     previousMillisDisplay = millis();
  72.     // displays data
  73.     lcd.clear();
  74.     lcd.setCursor(0,0);
  75.     lcd.print("Voltage: "); lcd.print(busvoltage,3); lcd.println(" V ");
  76.     lcd.setCursor(0,1);
  77.     lcd.print("Current: "); lcd.print((current_A*1000),1); lcd.println(" mA ");
  78.     lcd.setCursor(0,2);
  79.     lcd.print("Power: "); lcd.print(power,3); lcd.println(" W ");
  80.     lcd.setCursor(0,3);
  81.     lcd.print("Ah: ");    lcd.print(Ah,3); lcd.println(" Ah ");
  82.  
  83.   }
  84.   // blink led
  85.   digitalWrite(13, led);
  86.   led = !led;
  87.  
  88.   delay(10);
  89. }
  90.  
  91. void readCurrent() {
  92.   uint32_t count = 0;
  93.   unsigned long newtime;
  94.  
  95. //  Serial.println("waiting data ready");
  96.  
  97.   // reads busVoltage
  98.   busvoltage = ina219.busVoltage();
  99.   // waits for conversion ready
  100.   while(!ina219.ready() && count < 500) {
  101.     count++;
  102.     delay(1);
  103.     busvoltage = ina219.busVoltage();  
  104.   }
  105.  
  106. //  Serial.print("Count:   "); Serial.println(count);
  107.  
  108.   // read the other values
  109.   shuntvoltage = ina219.shuntVoltage() * 1000;
  110.   current_A = ina219.shuntCurrent();
  111.   batvoltage = busvoltage + (shuntvoltage / 1000);
  112.   power = ina219.busPower();
  113.   newtime = millis();
  114.   tick = newtime - lastread;
  115.   Ah += (current_A * tick)/3600000.0;
  116.   lastread = newtime;
  117.  
  118.   // prepare for next read -- this is security just in case the ina219 is reset by transient curent
  119.   ina219.recalibrate();
  120.   ina219.reconfig();
  121.  
  122. }

image.jpg
    
Következő: »»   403 / 853
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