Ovládání teplovzdušného vytápění
Úvodní stránka › Fórum › Vaše projekty › Arduino › Ovládání teplovzdušného vytápění
Označeno štítky: tftlcd ili9341
- Toto téma obsahuje celkem 16 odpovědí. Do diskuze (3 diskutující) se naposledy zapojil uživatel mystriks a poslední změna proběhla před 7 roky a 9 měsíci.
-
AutorPříspěvky
-
26.1.2017 v 20:13 #10234mystriksÚčastník
Zdravím mám v plánu koupit:
Arduino mega2560
2.8″ Inch TFT LCD Display Touch Screen
Arduino Sensor Shield
3x SG90 9g Mini Servo
3x DS18S20 Arduino Thermal Sensor
5V Four 4 Channel Relay Modulepro ovládání teplovzdušného vytápění s možností nastavení teploty v jednotlivých místnostech na dotykovém lcd, s arduinem jsem ještě nepracoval, tak nevím co vše budu potřebovat programování by mi nemělo dělat problém.
Attachments:
27.1.2017 v 7:10 #10240Vojtěch VosáhloÚčastníkMůžu vědět jak budete se sonzory a servy komunikovat?
Kabel/bezdrátově, protokly…27.1.2017 v 11:15 #10243mystriksÚčastníkBudou natazene kabely. Aby to nebylo zbytecne slozite. V podstate mi jde o to aby pri teplote 23 stupnu byli klapky zavrene a pri 20 otevrene napul. Vetrak by se mel pri 35 stupnich zapnout na 30 procent a pri 90 st. Na 100%. A aby se ty teploty dali na lcd nastavit
27.1.2017 v 14:27 #10244Vojtěch VosáhloÚčastníkDůležitá věc u něčeho takového je rozšiřitelnost. Vy vlastně natáhnete tolik kabelů kolik máte serv. Pokud jste si 100% jistý že to takhle zůstane, je to nejlepší řešení, a nejjednodušší. Pokud by ale byla šance že budete někdy chtít něco přidat, mohl byste mít nouzi o kabely… Tady by poté bylo nejlepší mít u každého serva/senzoru uC který by vše sjednocoval na jednu datovou linku, třeba 1wire. Na to můžete pak přidávat zařízení prakticky bez omezení. Je to jen něco nad čím se zamyslet.
27.1.2017 v 14:38 #10245mystriksÚčastníkCasem az budou penize bych tam chtel dodelat rekuperaci. Kabely budou tazene v sadrokartonovem podhledu takze nebude problem je kdykoliv predelat. uC je co?
27.1.2017 v 17:00 #10246mystriksÚčastníkJestli jsem to dobre pochopil tak to mohu zapojit normalne jen do kazde mistnosti privest o jeden drat navic pro 1wire komunikaci, pro pripadne rozsireni napr. o vlhkostni cidla
27.1.2017 v 19:49 #10247Vojtěch VosáhloÚčastníkuC jsem myslel mikroprocesor, něco jako Attiny13/45/85…
Kdybyste šel tou cestou která se jednoduše rozšiřuje, stačilo by do všech místností natáhnout trojlinku – 1. Země 2. Napájení 3. Komunikace (např. ten onewire)Na tuto „síť“ by pak mohlo být připojeno prakticky cokoliv co přes 1wire komunikuje. Tady je ale problém že servo na 1W nepřipojíte…
Tím pádem by se musel do hry přidat právě nějaký mikroprocesor. I Attiny13 (asi 20Kč za kus v ČR) by mělo stačit kdyby vám nevadilo psát v C.
Takže by se vytvořila taková senzorová jednotka.
[Teploměr, servo atd. <—–> uC(konverze z/na 1W) ]<–trojlinka natažená pokoji–> hlavní uC
Kdyby jste pak měl nataženou trojlinku stačí na ní jen „napíchat“ všechna zařízení. To označené [ ] je vaše zařízení které bude připíchnuté na trojlince.
Například dallas (to je snad maxim?) prodává čipy co dělají přímou konverzi I/O na onewire takže k tomu zapojíte třeba tlačítko, píchnete na trojlinku a najednou máte spínač připojený k celému systému.
Pokud vím tak max počet zařízení je 255.Rozhodně se vyplatí vytvořit něco rozšiřitelného pokud plánujete cokoliv přidávat.
27.1.2017 v 21:06 #10248Vojtěch VosáhloÚčastníkMimochodem při delších drátových rozvodech pak musíte pracovat i s odporem a kapacitou drátu. Třeba článek zde vše popisuje, kdyby jste se rozhodl jít pro 1wire:
A oprava, na 1wire zběrnici není úplně daný limit, je to dané právě kapacitou a délkami drátů.
27.1.2017 v 23:12 #10249mystriksÚčastníktak jsem se do toho trochu zamotal, asi bych to viděl momentálně takhle:
koupím arduino Mega 2560
2.8″ Inch TFT LCD Display Touch Screen
Arduino Sensor Shield
servo 3x
teplotni cidla
Four 4 Channel Relay Module
vyzkoušel bych to nejdřív zapojit napřímo abych se s tim seznámil a zkusil naprogramovat lcd, až bych tohle zvládnul tak bych dokoupil Attiny85
28.1.2017 v 11:12 #10252Vojtěch VosáhloÚčastníkS tím můžu jenom souhlasit, pokud jste s tím moc nedělal tak je to nejlepší řešení. Budu vám držet palce. Kdykoliv se sem můžete obrátit.
29.1.2017 v 9:11 #10257posjirkaÚčastníkvojtechu ty zkratky nejsou moc dobre. 1w a uC bych taky lustil ? prosim zkuste se drzet zazite terminologie 1-wire pripadne one-wire a uprocesor. spis to pisu pro cady budouci kdy pak lidi toto forum budou potrebovat pro svoje reseni a budou se blbe orientovat.
jinak k prohektu. zvolil bych spis reseni komunikace pres rs485 nebo pres wifi. souhlasim s dislokovanou jednotkou pro kazdou mistnost.
kszdopadne bude treba silove napajeni pocitam ze tak 5v/1 A minimalne. lepsi by bylo 12V a kazda stanice by mela vlastni spinany zdroj. urcite bude nekdy treba vyssi napeti. ohledne attiny: zjistil jsem ze nez pouzivat omezene attiny tak za podobne penize se da koupit v arduino mini. ted jsem pouzil c twplomeru taky attiby jen kvuli mistu v krabici.
1-wire: i arduino muze byt jako 1-wire slave zarizeni. jsou na to knihovny. pri delsich vzdalenostech bude klesat pull up odpor az na 1k a nejsem si jisty spolehlivosti29.1.2017 v 9:20 #10258posjirkaÚčastníkogledne mereni teploty: je treba dat cidla do urovne 80-120cm na stenu kam nesviti moc slunce a ani neni topeni. voli se vetsinou nejstudenejsi stena.
jako zaklad pro zkousku souhlasim s volbou arduino mega , dotykovy lcd, cidla releovy modul. cidla dallas jsou takovy zvlastni a v pripade nevhodneho naprogramovani mohou zbytecne zdrzovat funkci celeho programu.je treba postupovat v klidu a logicky. pro start je to moc dobry projekt a volba dotykoveho lcd ti pomuze z omezeneho reseni pres 2×16 lcd a tim padem i horsi nastaveni. mem doma taky dotykovy lcd a ma nekde spatny spoj a 5 radku mi vynechava. …29.1.2017 v 11:00 #10259Vojtěch VosáhloÚčastníkvojtechu ty zkratky nejsou moc dobre. 1w a uC bych taky lustil ? prosim zkuste se drzet zazite terminologie 1-wire pripadne one-wire a uprocesor.
Za ty zkratky se omlouvám 😀 nalezlo mi toho nějak moc do hlavy.
29.1.2017 v 14:32 #10261posjirkaÚčastníkto vojtech:
v pohode, nekritzuju, nenapomínám a i já občas ujedu. jsem jen lidi 🙂17.2.2017 v 15:56 #10514mystriksÚčastníkzkoušel jsem zprovoznit tftlcd shield (ili9341) pouzil jsem adafruit_tftlcd a graphictest ale píše mi to tohle:
TFT LCD test
Using Adafruit 2.8″ TFT Arduino Shield Pinout
TFT size is 240×320
Unknown LCD driver chip: 0
If using the Adafruit 2.8″ TFT Arduino shield, the line:
#define USE_ADAFRUIT_SHIELD_PINOUT
should appear in the library header (Adafruit_TFT.h).
If using the breakout board, it should NOT be #defined!
Also if using the breakout, double-check that all wiring
matches the tutorial.piny mam definovane takhle mely by bit spravne
#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0#define LCD_RESET A4 // Can alternately just connect to Arduino’s reset pin
Attachments:
17.2.2017 v 17:59 #10516mystriksÚčastníkpouzil jsem id reader a pri tom se na display objevi jakoby radkovani kazdy druhy pixel.
Initializing LCD…
Reading ID…0x0000
Loading LCD registers…
Filling the screen…
Done filling…
If your screen filled red, you may be able to use the library at http://misc.ws/********************************************************************* * * LCD_ID_Reader * * This sketch is meant only to attempt to read the driver ID code * from inexpensive touchscreen LCDs found on eBay without needing to * load any additional libraries. The hope is to identify the most * common varieties and choose the best library for the screen you have. * * This has been successfully tested so far on 992X and 778X variety * screens. * * Usage: * * Compile the sketch and run it on your board with the screen * attached. In the serial monitor, you should see a message containing * the driver code. The tricky thing is that if it does not work, the * results may be undetermined. However, if we can compile a list, * the difference between working and not may become more evident. * * Please visit http://misc.ws/lcd_information for more information. * * Version 1.2 - January 29th, 2015 * *********************************************************************/ /********************************************************************* * * PIN ASSIGNMENTS * * You can alter the pin assignments to reflect any configuration you * wish. I've provided the default shield configuration, which works * on both the Arduino UNO and Mega 2560. * *********************************************************************/ //-- Arduino UNO or Mega 2560 Plugged as shield #define LCD_RST A4 #define LCD_CS A3 #define LCD_RS A2 #define LCD_WR A1 #define LCD_RD A0 #define LCD_D0 8 #define LCD_D1 9 #define LCD_D2 2 #define LCD_D3 3 #define LCD_D4 4 #define LCD_D5 5 #define LCD_D6 6 #define LCD_D7 7 /********************************************************************* * * Attempt to initialize and reset LCD, then read its Driver Code * at register index 0. * *********************************************************************/ void setup() { char hexString[7]; uint16_t id; Serial.begin(9600); Serial.println("Initializing LCD..."); lcdInit(); lcdReset(); delay(500); Serial.print("Reading ID..."); id = lcdReadID(); sprintf(hexString, "0x%0.4X", id); Serial.println( hexString ); if( id == 0x7783 ) { lcdRegister7783(); lcdFillScreen(0xF800); Serial.println("If your screen filled red, then you may be able to use the library at ; } else if( id == 0x0154 ) { lcdRegister0154(); lcdFillScreen(0xF800); Serial.println("If your screen filled red, please report it at ; Serial.println("There is currently no known working library."); } else { lcdRegisterOther(); lcdFillScreen(0xF800); Serial.println("If your screen filled red, you may be able to use the library at http://misc.ws"); } //print_all_regs(); } void print_all_regs() { char str[60]; uint16_t i, val; for(i=0; i < 256; i++ ) { delay(40); val = lcdReadRegister(i); sprintf(str, "Register 0x%0.2X : 0x%0.4X", i, val); Serial.println( str ); } } void loop() { } /********************************************************************* * * LCD Functions - Inefficient but should be good enough * to read the ID. * *********************************************************************/ void lcdRegister0154() { lcdWriteRegister(0x000C, 0x130); lcdWriteRegister(0x0080, 0x8d); lcdWriteRegister(0x0092, 0x10); lcdWriteRegister(0x0011, 0x1b); lcdWriteRegister(0x0012, 0x3101); lcdWriteRegister(0x0013, 0x105f); lcdWriteRegister(0x0014, 0x667f); lcdWriteRegister(0x0010, 0x800); delay(20); lcdWriteRegister(0x0011, 0x11b); delay(20); lcdWriteRegister(0x0011, 0x31b); delay(20); lcdWriteRegister(0x0011, 0x71b); delay(20); lcdWriteRegister(0x0011, 0xf1b); delay(20); lcdWriteRegister(0x0011, 0xf3b); delay(30); lcdWriteRegister(0x0001, 0x2128); lcdWriteRegister(0x0002, 0x100); lcdWriteRegister(0x0003, 0x1030); lcdWriteRegister(0x0007, 0); lcdWriteRegister(0x0008, 0x808); lcdWriteRegister(0x000B, 0x1100); lcdWriteRegister(0x000F, 0xf01); lcdWriteRegister(0x0015, 0); lcdWriteRegister(0x0030, 0); lcdWriteRegister(0x0034, 319); lcdWriteRegister(0x0035, 0); lcdWriteRegister(0x0036, 239); lcdWriteRegister(0x0037, 0); lcdWriteRegister(0x0038, 319); lcdWriteRegister(0x0039, 0); lcdWriteRegister(0x0050, 0); lcdWriteRegister(0x0051, 0xf00); lcdWriteRegister(0x0052, 0xa03); lcdWriteRegister(0x0053, 0x300); lcdWriteRegister(0x0054, 0xc05); lcdWriteRegister(0x0055, 0xf00); lcdWriteRegister(0x0056, 0xf00); lcdWriteRegister(0x0057, 3); lcdWriteRegister(0x0058, 0x1f07); lcdWriteRegister(0x0059, 0x71f); delay(20); lcdWriteRegister(0x0007, 0x12); delay(20); lcdWriteRegister(0x0007, 0x13); } void lcdRegisterOther() { Serial.println("Loading LCD registers..."); lcdWriteRegister(0x00e5,0x8000); lcdWriteRegister(0x0000,0x0001); lcdWriteRegister(0x0001,0x0100); lcdWriteRegister(0x0002,0x0700); lcdWriteRegister(0x0003,0x1030); lcdWriteRegister(0x0004,0x0000); lcdWriteRegister(0x0008,0x0202); lcdWriteRegister(0x0009,0x0000); lcdWriteRegister(0x000a,0x0000); lcdWriteRegister(0x000c,0x0000); lcdWriteRegister(0x000d,0x0000); lcdWriteRegister(0x000f,0x0000); lcdWriteRegister(0x0010,0x0000); lcdWriteRegister(0x0011,0x0000); lcdWriteRegister(0x0012,0x0000); lcdWriteRegister(0x0013,0x0000); lcdWriteRegister(0x0010,0x17b0); lcdWriteRegister(0x0011,0x0037); lcdWriteRegister(0x0012,0x0138); lcdWriteRegister(0x0013,0x1700); lcdWriteRegister(0x0029,0x000d); lcdWriteRegister(0x0020,0x0000); lcdWriteRegister(0x0021,0x0000); lcdWriteRegister(0x0030,0x0001); lcdWriteRegister(0x0031,0x0606); lcdWriteRegister(0x0032,0x0304); lcdWriteRegister(0x0033,0x0202); lcdWriteRegister(0x0034,0x0202); lcdWriteRegister(0x0035,0x0103); lcdWriteRegister(0x0036,0x011d); lcdWriteRegister(0x0037,0x0404); lcdWriteRegister(0x0038,0x0404); lcdWriteRegister(0x0039,0x0404); lcdWriteRegister(0x003c,0x0700); lcdWriteRegister(0x003d,0x0a1f); lcdWriteRegister(0x0050,0x0000); lcdWriteRegister(0x0051,0x00ef); lcdWriteRegister(0x0052,0x0000); lcdWriteRegister(0x0053,0x013f); lcdWriteRegister(0x0060,0x2700); lcdWriteRegister(0x0061,0x0001); lcdWriteRegister(0x006a,0x0000); lcdWriteRegister(0x0090,0x0010); lcdWriteRegister(0x0092,0x0000); lcdWriteRegister(0x0093,0x0003); lcdWriteRegister(0x0095,0x0101); lcdWriteRegister(0x0097,0x0000); lcdWriteRegister(0x0098,0x0000); lcdWriteRegister(0x0007,0x0021); lcdWriteRegister(0x0007,0x0031); lcdWriteRegister(0x0007,0x0173); } void lcdRegister7783() { lcdWriteRegister(0x0001,0x0100); lcdWriteRegister(0x0002,0x0700); lcdWriteRegister(0x0003,0x1030); lcdWriteRegister(0x0008,0x0302); lcdWriteRegister(0x0009,0x0000); lcdWriteRegister(0x000A,0x0008); lcdWriteRegister(0x0010,0x0790); lcdWriteRegister(0x0011,0x0005); lcdWriteRegister(0x0012,0x0000); lcdWriteRegister(0x0013,0x0000); lcdWriteRegister(0x0010,0x12B0); lcdWriteRegister(0x0011,0x0007); lcdWriteRegister(0x0012,0x008C); lcdWriteRegister(0x0013,0x1700); lcdWriteRegister(0x0029,0x0022); lcdWriteRegister(0x0030,0x0000); lcdWriteRegister(0x0031,0x0505); lcdWriteRegister(0x0032,0x0205); lcdWriteRegister(0x0035,0x0206); lcdWriteRegister(0x0036,0x0408); lcdWriteRegister(0x0037,0x0000); lcdWriteRegister(0x0038,0x0504); lcdWriteRegister(0x0039,0x0206); lcdWriteRegister(0x003C,0x0206); lcdWriteRegister(0x003D,0x0408); lcdWriteRegister(0x0050,0x0000); lcdWriteRegister(0x0051,0x00EF); lcdWriteRegister(0x0052,0x0000); lcdWriteRegister(0x0053,0x013F); lcdWriteRegister(0x0060,0xA700); lcdWriteRegister(0x0061,0x0001); lcdWriteRegister(0x0090,0x0033); lcdWriteRegister(0x0007,0x0133); lcdWriteRegister(0x0001,0x0100); lcdWriteRegister(0x0002,0x0700); lcdWriteRegister(0x0003,0x1030); lcdWriteRegister(0x0008,0x0302); lcdWriteRegister(0x0009,0x0000); lcdWriteRegister(0x000A,0x0008); lcdWriteRegister(0x0010,0x0790); lcdWriteRegister(0x0011,0x0005); lcdWriteRegister(0x0012,0x0000); lcdWriteRegister(0x0013,0x0000); lcdWriteRegister(0x0010,0x12B0); lcdWriteRegister(0x0011,0x0007); lcdWriteRegister(0x0012,0x008C); lcdWriteRegister(0x0013,0x1700); lcdWriteRegister(0x0029,0x0022); lcdWriteRegister(0x0030,0x0000); lcdWriteRegister(0x0031,0x0505); lcdWriteRegister(0x0032,0x0205); lcdWriteRegister(0x0035,0x0206); lcdWriteRegister(0x0036,0x0408); lcdWriteRegister(0x0037,0x0000); lcdWriteRegister(0x0038,0x0504); lcdWriteRegister(0x0039,0x0206); lcdWriteRegister(0x003C,0x0206); lcdWriteRegister(0x003D,0x0408); lcdWriteRegister(0x0050,0x0000); lcdWriteRegister(0x0051,0x00EF); lcdWriteRegister(0x0052,0x0000); lcdWriteRegister(0x0053,0x013F); lcdWriteRegister(0x0060,0xA700); lcdWriteRegister(0x0061,0x0001); lcdWriteRegister(0x0090,0x0033); lcdWriteRegister(0x0007,0x0133); } void lcdInit() { pinMode(LCD_CS, OUTPUT); digitalWrite(LCD_CS, HIGH); pinMode(LCD_RS, OUTPUT); digitalWrite(LCD_RS, HIGH); pinMode(LCD_WR, OUTPUT); digitalWrite(LCD_WR, HIGH); pinMode(LCD_RD, OUTPUT); digitalWrite(LCD_RD, HIGH); pinMode(LCD_RST, OUTPUT); digitalWrite(LCD_RST, HIGH); } void lcdReset() { digitalWrite(LCD_RST, LOW); delay(2); digitalWrite(LCD_RST, HIGH); lcdWriteData(0); lcdWriteData(0); lcdWriteData(0); lcdWriteData(0); } void lcdWrite8(uint16_t data) { digitalWrite(LCD_D0, data & 1); digitalWrite(LCD_D1, (data & 2) >> 1); digitalWrite(LCD_D2, (data & 4) >> 2); digitalWrite(LCD_D3, (data & 8) >> 3); digitalWrite(LCD_D4, (data & 16) >> 4); digitalWrite(LCD_D5, (data & 32) >> 5); digitalWrite(LCD_D6, (data & 64) >> 6); digitalWrite(LCD_D7, (data & 128) >> 7); } uint16_t lcdRead8() { uint16_t result = digitalRead(LCD_D7); result <<= 1; result |= digitalRead(LCD_D6); result <<= 1; result |= digitalRead(LCD_D5); result <<= 1; result |= digitalRead(LCD_D4); result <<= 1; result |= digitalRead(LCD_D3); result <<= 1; result |= digitalRead(LCD_D2); result <<= 1; result |= digitalRead(LCD_D1); result <<= 1; result |= digitalRead(LCD_D0); return result; } void lcdSetWriteDir() { pinMode(LCD_D0, OUTPUT); pinMode(LCD_D1, OUTPUT); pinMode(LCD_D2, OUTPUT); pinMode(LCD_D3, OUTPUT); pinMode(LCD_D4, OUTPUT); pinMode(LCD_D5, OUTPUT); pinMode(LCD_D6, OUTPUT); pinMode(LCD_D7, OUTPUT); } void lcdSetReadDir() { pinMode(LCD_D0, INPUT); pinMode(LCD_D1, INPUT); pinMode(LCD_D2, INPUT); pinMode(LCD_D3, INPUT); pinMode(LCD_D4, INPUT); pinMode(LCD_D5, INPUT); pinMode(LCD_D6, INPUT); pinMode(LCD_D7, INPUT); } void lcdWriteData(uint16_t data) { lcdSetWriteDir(); digitalWrite(LCD_CS, LOW); digitalWrite(LCD_RS, HIGH); digitalWrite(LCD_RD, HIGH); digitalWrite(LCD_WR, HIGH); lcdWrite8(data >> 8); digitalWrite(LCD_WR, LOW); delayMicroseconds(10); digitalWrite(LCD_WR, HIGH); lcdWrite8(data); digitalWrite(LCD_WR, LOW); delayMicroseconds(10); digitalWrite(LCD_WR, HIGH); digitalWrite(LCD_CS, HIGH); } void lcdWriteCommand(uint16_t command) { lcdSetWriteDir(); digitalWrite(LCD_CS, LOW); digitalWrite(LCD_RS, LOW); digitalWrite(LCD_RD, HIGH); digitalWrite(LCD_WR, HIGH); lcdWrite8(command >> 8); digitalWrite(LCD_WR, LOW); delayMicroseconds(10); digitalWrite(LCD_WR, HIGH); lcdWrite8(command); digitalWrite(LCD_WR, LOW); delayMicroseconds(10); digitalWrite(LCD_WR, HIGH); digitalWrite(LCD_CS, HIGH); } int lcdReadData() { uint16_t result; lcdSetReadDir(); digitalWrite(LCD_CS, LOW); digitalWrite(LCD_RS, HIGH); digitalWrite(LCD_RD, HIGH); digitalWrite(LCD_WR, HIGH); digitalWrite(LCD_RD, LOW); delayMicroseconds(10); result = lcdRead8() << 8; digitalWrite(LCD_RD, HIGH); delayMicroseconds(10); digitalWrite(LCD_RD, LOW); delayMicroseconds(10); result |= lcdRead8(); digitalWrite(LCD_RD, HIGH); digitalWrite(LCD_CS, HIGH); return result; } void lcdWriteRegister(uint16_t addr, uint16_t data) { lcdWriteCommand(addr); lcdWriteData(data); } uint16_t lcdReadRegister(uint16_t reg) { lcdWriteCommand(reg); return lcdReadData(); } uint16_t lcdReadID() { return lcdReadRegister(0x00); } void lcdFillScreen(uint16_t color) { Serial.println("Filling the screen..."); /*lcdWriteRegister(0x0050, 0); lcdWriteRegister(0x0051, 219); lcdWriteRegister(0x0052, 0); lcdWriteRegister(0x0053, 319); */ lcdWriteRegister(0x0020, 0); lcdWriteRegister(0x0021, 0); lcdWriteCommand(0x0022); digitalWrite(LCD_CS, LOW); digitalWrite(LCD_RS, HIGH); digitalWrite(LCD_RD, HIGH); digitalWrite(LCD_WR, HIGH); lcdSetWriteDir(); uint32_t i = 320; i *=240; while( i-- ) { lcdWrite8(color >> 8); digitalWrite(LCD_WR, LOW); delayMicroseconds(10); digitalWrite(LCD_WR, HIGH); lcdWrite8(color); digitalWrite(LCD_WR, LOW); delayMicroseconds(10); digitalWrite(LCD_WR, HIGH); } digitalWrite(LCD_CS, HIGH); Serial.println("Done filling..."); }
18.2.2017 v 7:03 #10518mystriksÚčastníktak jsem pouzil spfd5408 akorat touch je nejak otoceny x a y
-
AutorPříspěvky
- Pro reakci na toto téma se musíte přihlásit.