Keresés

Részletes keresés

vfp Creative Commons License 2014.02.09 0 0 191

USB-ről és 9V/700mA tápról is próbáltam.

 

Én is szoftveres gondra gondoltam, mivel régebben ment.

Azóta szórakoztam DS1307-es RTC-vel és már ott csodálkoztam hogy a többféle demo program más-más időt és dátumot lát ugyanazon RTC-ből.

Azóta van egy SD shield is, amin van RTC és csak azt használom. Gyönyörűen tudom naplózni a mért hőmérsékletet az SD kártyára, és 4bites módban az LCD-re kiírni.

 

A vége az lesz, hogy fogok egy régi gépet XP-vel és ott is kipróbálom.

Előzmény: Prof (190)
Prof Creative Commons License 2014.02.08 0 0 190

Milyen tápot kap?

Esetleg tedd át USB-re!

 

Igen, elég kicsi volt a kép, de így azért a lényeg látszik.

Előzmény: vfp (188)
Prof Creative Commons License 2014.02.08 0 0 189

Az i2c címet mivel állítottad át? Vissza kellene vinni a gyári beállításra.

Meg ahogy nézem, a végén van egy jumper, felteszem, hogy a háttérvilágítás ki/bekapcsolására szolgál.

 

A gond szerintem szoftveres, és vagy valamelyik könyvtárral vagy az i2c címzésével (szürreális, esetleg időzítésével) lehet galiba.

Írj egy sketch-t, ami ki/be kapcsolgatja a háttérvilágítást.

Aztán ahogy a könyvtár belsejét elnéztem, van parancs a kijelző ki/be kapcsolgatására [ lcd.displayon() talán, de meg kell nézni], azzal is lehetne tenni egy próbát.

 

Holnap megnézem a fórumokat.

Előzmény: vfp (187)
vfp Creative Commons License 2014.02.08 0 0 188

Kicsi a kép felbontása?

 

A dropbox-ot nem használom (ez lenne a 3. alkalmazás erre a célra és azt feleslegesnek érzem).

 

Megtekinthető itt:
https://drive.google.com/folderview?id=0B1QQ7JDppPs8QVdodWVxYUFSYVE&usp=sharing

Előzmény: Prof (186)
vfp Creative Commons License 2014.02.08 0 0 187

Az 5-ös lábon mértem a feszültséget. Bocs a kép minőségért.

 

- a ledPin-t átírtam

 

- Wire.h és LiquidCrystal_I2C.h újra telepítve

 

semmi változás

 

- Ha nem a 0x27 -es cím van beállítva, akkor a kijelző háttérvilágítása megy, más nem történik.

 

- átnéztem a wire.h és LiquidCrystal_I2C.h-t de nem találtam benne fix címzést

 

- a másik kontrollerrel és egy másik kijelzővel is ezt csinálja.

 

- A film arról van amit csinál a kijelző. Látni rajta, hogy a D13-as LED ki-be kapcsólgat 3 mp-ként, és villan a kijelző.

 

- ha kiveszem a wire.h-t, akkor hibaüzenet jön az ellenőrzés közben:

C:ArduinosajatlibrariesLiquidCrystal_I2CLiquidCrystal_I2C.cpp: In member function 'void LiquidCrystal_I2C::init_priv()':
C:ArduinosajatlibrariesLiquidCrystal_I2CLiquidCrystal_I2C.cpp:42: error: 'Wire' was not declared in this scope
C:ArduinosajatlibrariesLiquidCrystal_I2CLiquidCrystal_I2C.cpp: In member function 'void LiquidCrystal_I2C::expanderWrite(uint8_t)':
C:ArduinosajatlibrariesLiquidCrystal_I2CLiquidCrystal_I2C.cpp:242: error: 'Wire' was not declared in this scope

 

kb. ennyi

Előzmény: Prof (185)
Prof Creative Commons License 2014.02.08 0 0 186

Ja, és képre, videora: dropbox. Az inda valami förtelem, a fórummotorban meg a képméret -- 2014 van, nem nagyon szeretek 800×600-as képeket nézegetni.

Előzmény: vfp (184)
Prof Creative Commons License 2014.02.08 0 0 185

Hm...

Az 5-ös lábon méred a feszültségre, igaz?

 

Egyrészt csinálj egy olyat, hogy

const int ledPin = 13;

 

A sketch további részében pedig a

digitalWrite(13,...);

legyen

digitalWrite(ledPin,...);

 

Technikai értelemben ennek elvileg semmi köze a jelenséghez.

 

 

Javaslataim.

1. Szedd le és tedd fel újra a wire.h-t és a liquidcrystal_i2c.h-t.

2. Játszd végig az összes i2c címzést, amit a kontroller megenged.

3. Nézz bele a wire.h-ba és az liquidcrystal_i2c.h-ba, hogy ott nincs-e hívás az adott i2c címre (nem kell-e átírni abban). Elvileg ezt a liquidcrystal_i2c.h a sketch eleji meghívással elintézi, de láttam már karon varjút (teapot sketch mpu6050 teszteléshez) -- sajnos ennek a könyvtárnak is botrányos (pontosabban nincs) dokumentációja.

4. Ha megvan a másik kontroller, azzal is csinálj egy tesztet.

 

A filmen csak az látszik, hogy az 5-ös lábat ki/be kapcsolja, aminek -- legalábbis elvben -- semmi létjogosultsága nincs, tekintetbe véve, hogy csak egy lcd.clear(); van.

 

Öööööööö.... Csinálj egy olyat, hogy az include wire.h-t kiszeded //-rel, aztán csinálj egy próbafordítást (verify).

 

 

 

Előzmény: vfp (184)
vfp Creative Commons License 2014.02.08 0 0 184

Elkészült a video és a fotó.

 

a video: indavideo.hu/video/Arduino_I2C_LCD (így írom be mert különben beilleszti ide)

 

Előzmény: Prof (183)
Prof Creative Commons License 2014.02.08 0 0 183

A kontraszt állítgatására elmászik a kijelző színe (átfordul negatívba is akár)?

Megnéztem, az egyszerűbb bekötésnél az 1--5 lábak között rövidzár van, az 5. láb az R/W, ami "high" állásban olvasást jelent, tehát ott a 4,77 V azt jelenti, hogy az LCD-t olvasod, nem írod. Ami ugye nem jó ("low" kellene lennie, valahol 0,5 V-ig maximum.

Nézd meg, hogy „élő” rendszernél mit művel ugyanez a láb. Ha átmegy 0,5 V alá, akkor korrekt.

Az már önmagában nekem kicsit fura.

A 15--16 4,78 V-ja korrekt, elvileg +5V-ig mehet, de ezt a kijelző specifikációja pontosan tartalmazza.

Nem tudsz egy filmet csinálni, hogy mit művel?

Meg valami fotót a bekötésről.

 

Mert elmondás alapján ennek így mennie kellene.

Előzmény: vfp (182)
vfp Creative Commons License 2014.02.08 0 0 182

A potméterrrel tudom szabályozni a kontrasztot. Egy PCF8574 van a kártyán egy SMD tranzisztor, egy SMD LED és néhány olyan SMD amit nem ismerek fel (ellenállás és kondi). Ja és a 3 címzőpont és a potméter.

 

Nincs fordítva rakva, egy 400 pontos próbapanelba ültettem be. 

 

A kontroller LCD nélkül és csak táppal:

1-2 = 4.78

1-5 = 4.77   !!!!!  

15-16 = 4.78

 

Feszültség és vezeték mentesen az 1-5 láb egyik irányba 798 Ohm-ot mutat, a másik irányba 105K.

 

Ami érdekes, hogy az első kontrollert használtam novemberben, a másik a héten jött új.

 

 

 

 

Előzmény: Prof (181)
Prof Creative Commons License 2014.02.08 0 0 181

Hali!

 

No, akkor újra, elölről.

 

Először is tekergesd körbe a potmétert mindkét végállásig úgy, hogy csak táppal van meghajtva az egész hóbelevanc.

A háttérvilágításnak (elvben) működnie kell, mindentől függetlenül (bár nem tudom, hogy maga a kontroller hogy van vezetékelve, az ebay linken erről semmi sincs).

Ellenőrizni kell, hogy nincs-e fordítva az LCD (valószerűtlen, mert eldurranna azonnal a háttérvilágítás LED-je).

Az LCD-n bekapcsoláskor láthatóan meg kell változnia a kontrasztnak (lcd előfeszítés), ezt látnod kell.

SDA--SDA, SCL--SCL bekötést én folyamatosan összekeverem (megfordítom), ezt is nézd meg esetleg.

Aztán érdemes végigmérni a kulcspontokat. Csak a kontrolleren (LCD nélkül) 1--5 láb (rövidzár), 1--2 láb (+5V), 15--16 láb (2,0--3,3 V, ez a háttérvilágítás LED-je).

 

Mikor villan fel a háttérvilágítás?

 

 

Előzmény: vfp (180)
vfp Creative Commons License 2014.02.08 0 0 180

Szia!

 

Nem a TávIr féle panel, egyszerűen az ebay-ról.

ez:

http://www.ebay.com/itm/281234403721?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649

 

A másik is ilyen.

 

Betöltőttem a demokból a Hello world-öt, kiegészítettem egy kicsit. Így már látom hogy az UNO működik, a D13-on a LED ki-be kapcsolgat, a kijelző egy-egy villanást csinál (háátérvilágítás), mást nem.

 

prg:

 

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x20 for a 16 chars and 2 line display

void setup()
{
  pinMode(13,OUTPUT);
  lcd.init();                      // initialize the lcd
 
  // Print a message to the LCD.
  lcd.backlight();
  lcd.print("Hello, world!");
  delay(1000);
}

void loop()
{
  lcd.clear();
  digitalWrite(13,HIGH);
  lcd.setCursor(0,0);
  lcd.print("AAAAAAAAAAAAAA");
  delay(3000);
  digitalWrite(13,LOW);
  lcd.setCursor(0,1);
  lcd.print("bbbbbbbbbbbbbb");
  delay(3000);
}

 

 

Kábelezést ellenőriztem, a tápnak elégnek kell lennie, hiszen csak az LCD van rajta. (Egy másik kiépítésben van rajta SD shield, RTC, DS18B20 hőmérő + 4bites módban az LCD és tökéletesen megy.

 

 

 

Előzmény: Prof (179)
Prof Creative Commons License 2014.02.08 0 0 179

Szia!

Ez a Távírász-féle i2c panel?

Ha a kijelző vezetékelése simán megy, akkor jó eséllyel három helyen lehet galiba:

-- kábelezés (különösen táp, beleértve a terhelhetőséget)

-- i2c címzés

-- i2c kábelezés (sajnos ez sem mindig magától értetődő, az arduino.cc-n is van/volt fent pár ökörség).

 

Aztán érdemes megnézni, hogy a sketchben valami nem kavar-e be a lábaknál. Ezt ki lehet küszöbölni, ha a library mellé rakott mintákkal teszel egy próbát.

 

Én így indulnék neki.

Előzmény: vfp (178)
vfp Creative Commons License 2014.02.07 0 0 178

Sziasztok!

 

Természetesen megint elakadtam.  :(

 

Arduino 1.0.5, UNO panel, I2C LCD panel és egy 1602 LCD

 

Az LiquidCrystal_I2C -t próbálom beüzemelni. Címét le tudom kérdezni, de e legegyszerűbb kiírás eredménye is csak egy felvillanás a kijelzőn, és méla sötétség.

 

Ez valamikor működött, de felraktam egy LCD_keypad shield-et és azzal játszottam egy darabig. Most szeretnék visszatérni az I2C-hez, mert a keypad ütközik az SD kártya kezeléssel (D10 PIN). Normál LCD kezelés 4bit-es módban megy, csak sok kemenetet foglal.

Már szereztem egy új LCD-t és egy új I2C LCD vezérlőt, de nem ezekkel van a baj.

A LiquidCrystal_I2C library-t már lecseréltem, de ez sem segített.

 

Várom az ötleteket, mert 2 napja csak keringek körbe-körbe.

 

Köszönöm előre is.

 

 

Prof Creative Commons License 2014.02.06 0 0 177

Szia!

Az első kör meggyött, válaszoltam is rá, a többi még nem.

Előzmény: VerenJoe (176)
VerenJoe Creative Commons License 2014.02.05 0 0 176

Köszi, elküldöm az email-edre a fájlokat, képeket holnap tudok készíteni.

 

Előzmény: Prof (175)
Prof Creative Commons License 2014.02.05 0 0 175

Szia!

Két alapvető dolog feltétlenül szükséges lenne a dologhoz:

1. Maga a vezérlő sketch (program), ami az Arduinon fut.

2. A rendszer sematikus rajza, amelyen a kábelezés, elektronikai alkatrészek pontosan látszanak, beleértve pl. a motorok típusát is.

 

Ha ez megvan, akkor ez alapján tudok valamit nyilatkozni (pl. hogy tudok-e segíteni vagy sem).

Előzmény: VerenJoe (174)
VerenJoe Creative Commons License 2014.02.05 0 0 174

Sziasztok, új fórumozó vagyok. Segítségre lenne szükségem a következőhöz: építettem egy mozgó szimulátor prototípust két motorral. Egy ismerősöm készíti a vezérlést Arduinoval. Sajnos sokszor nem ér rá, így nem haladunk a dologgal, nekem pedig nagyon sürgős lenne. Megcsinálta elméletileg teljesen, minden úgy működik, ahogy kell, de a motorok mozgása nem egyenletes, hanem szakaszos. Szükségem lenne valakire, aki bele tudna nézni, vagy meg tudná oldani sos-ben a problémát. Természetesen kifizetem a munkáját. Ha valakinek szakmai kérdése lenne, megpróbálok rá válaszolni, de laikus vagyok a témában, én csak a gépet találtam ki és szeretném már használni.

 

Köszönöm 

Prof Creative Commons License 2014.02.04 0 0 173

Igen, ez az aktuális tipp, de még nem ástam bele magam. Az lesz, hogy aki vállalja, feléleszti, aztán majd megalkuszom vele valami épeszű ellenszolgáltatásban.

Előzmény: John Zero (172)
John Zero Creative Commons License 2014.02.04 0 0 172

Hát, ha a bootloader felment, de mégse megy az egész, akkor lehet ott nagyobb a baj. De nem biztos, hogy a PROGMEM túlszaladása okozta, az maximum a flash tárat írhatja felül. Esetleg a fuse-ok elállítódtak? (Vagy rossz modellt választottál? Én szívtam egy kicsit, amíg rájöttem, hogy az atmega168 és atmega328-nak nem ugyanaz a fuse kiosztása)

 

Előzmény: Prof (171)
Prof Creative Commons License 2014.02.03 0 0 171

Az új bootloaderes dolgot egy másik kártyával végigjátszottam. Úgy fest, hogy felment rá, de ettől még nem működik.

A javallatot megnézem, hátha.

Előzmény: John Zero (170)
John Zero Creative Commons License 2014.02.03 0 0 170

Miért nem raksz rá új bootloadert ISP-vel? Vagy esetleg még mindig ott van a HVP (High Voltage Programming), ha jól tudom.

http://mightyohm.com/blog/2008/09/arduino-based-avr-high-voltage-programmer/

 

Előzmény: Prof (169)
Prof Creative Commons License 2014.02.03 0 0 169

Minek? Lerakod a legelejére, oszt kész.

Csinálj pár futás-tesztet így is, úgy is, mert nincs kizárva, hogy kb. egy idő a számolás és a progmem kezelése.
Arra figyelj, hogy a progmem ne verje ki a memóriát, mert nálam egy kártyán már felülírta a bootloadert, úgyhogy most papírnehezék a kártya.

Előzmény: zoknee (168)
zoknee Creative Commons License 2014.02.03 0 0 168

Nem túl nagy még, majd megnézem. De használnék Progmem-ben tárolt tömböt AD gyorsításhoz, hogy ne kelljen számolgatni annyit. Ahhoz jó lenne ha külön fájlban tudnám letárolni az 1024-es tömböt.

Előzmény: Prof (167)
Prof Creative Commons License 2014.02.03 0 0 167

Öööö. Izé...

MEKKORA ez a sketch?

Azért kérdem, mert nekem az eddigi legnagyobb (amiben nincs PROGMEM) 11,8 kB c++, 8,7 kB lefordítva és simán át lehet látni.

 

Én nem vagdosnám szét, hanem hagynám egyben az egészet és belső hívásokat [void (...) ] csinálnék a különböző feladatokra. Így kevés globális változóval meg lehet oldani a kérdést. Az egyes al-rutinokban meg annyi változót deklarálsz, amennyit akarsz (illetve ami a memóriában elfér). Ráadásul így áttekinthető(bb) is lesz az egész program.

Másfelől. Ez (lehet) az a tipikus eset, amikor egyszerűbb egy új könyvtárat (library) létrehozni. Persze ez programozásilag számottevően bonyolultabb, illetve más feladat.

Előzmény: zoknee (166)
zoknee Creative Commons License 2014.02.03 0 0 166

Sziasztok!

 

Több fájlra szeretném szétosztani az ArDuino-s projektemet, hogy jobban olvasható, logikusabban rendezhető legyen. Ha létrehozok egy újabb fájlt az ArDuino IDE-vel, és abban megírom a függvényeket, akkor azokat elérem a főprogramban. Viszont ha ezekben a fájlokban deklarálnék globális változót, azt nem látja a főprogram.

Amelyik projektből kiindultam, ott ez a módszer működött (több fájlra szétbontva, és a logikailak oda tartozó globális változók az adott fájlban voltak deklarálva, és a főprogram is meghívta őket), és az ArDuino.cc-n sem találtam még instrukciót, mit kéne még csinálnom, hogy jó legyen. Extern-ként meg kéne hivatkozni? Az IDE 1.0.5-ös verzióját használom Windows 8-on.

Prof Creative Commons License 2014.02.02 0 0 165

A régi nyelvekkel semmire sem mész lényegében. Ez objektumorientált programozás, legalábbis a C++-nek az Arduino által használt eleme.

 

Angolból sok normális könyv van, azért kérdeztem, meg a fórumok (ezen egy szál kivételével itt) gyakorlatilag sehol semmi sincs.

 

 

Előzmény: vfp (164)
vfp Creative Commons License 2014.02.02 0 0 164

Az angolt tanulgatom, de öreg fejjel nehezen haladok vele.

 

A regi programnyelvek egy részét ismerem, csak 20 éve nem használtam (fortran, basic, pascal, clipper)

Előzmény: Prof (163)
Prof Creative Commons License 2014.02.02 0 0 163

Szia!

 

Kérdezgess bátran!

A library-k jelentős részének nem nagyon van részletes leírása. Ami akad, az vagy az arduino.cc fórumában van, vagy a GitHub-on.

 

A LiquidCrystal könyvtárban a print és a write között annyi a differencia, hogy a write a zárójelbe írt éréték (vagy a zárójelbe írt változó tartalmának megfelelő) ascii kódú karaktert jeleníti meg (csak azt), míg a print-tel gyakorlatilag bármit kiírhatsz ('a' egy karaktert, "asdf" több karaktert ír ki, míg a változó kiírható magában is (direktben), vagy különböző módokon kódolva (dec, hex, oct, bin).

 

Változó konverzióra sok mód van, de egyik sem egyszerű. Programozási szempontból az az elsődleges, hogy a célnak megfelelő minimálisan szükséges (vagyis a lehető legkevesebb szabad memóriát lekötő) változó legyen az adott célra deklarálva.

 

Mennyire megy az angol?

Előzmény: vfp (162)
vfp Creative Commons License 2014.02.01 0 0 162

Nagyon köszönöm a részletes leírást!!!  :)

 

Nekem nagyon hiányoznak az adattipus konverziók.

 

Még arra sem igazán jöttem rá, hogy mi a különbség az lcd.print() és az lcd.write() között.

 

Nem igazán tudom feldolgozni azt, hogy van egy library (mondjuk az RTC-hez), és nem találok hozzá megfelelően alacson szintű leírást (mármint az én szintemnek megfelelőt).

 

Sajnos csak itt tudok kérdezgetni, ha már elvesztettem a türelmemet.

 

Köszönöm  :)

Előzmény: Prof (161)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!