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   147 / 863
(#) andykaaa hozzászólása Aug 26, 2015 /
 
Egy ilyen kijelzot ha 3,3v-s panelra kotok, akkor az ellenallasokat amelyeken keresztul kommunikal az SD rovidre zarhatom ? Vagyis az SD-t direktbe kothetem ?
(#) csatti2 válasza andykaaa hozzászólására (») Aug 26, 2015 /
 
Igen. Az alábbi feltételekkel persze,
1, Nem használod mással való kommunikációra a MOSI/MISO/SCK vonalakat
2, Vagy, beraksz egy felhúzóellenállást a CS vonalra (biztosan nem engedélyezi az SD-t még a bekapcsolás és inicializálás között).
(#) erdeidominik1999 hozzászólása Aug 27, 2015 /
 
Sziasztok! Van egy utft kijelzőm, erre szeretnék képet kirakni, van a libhez egy leírásom, az azt írja, hogy úgy lehet, hogy csinálok a progiban egy másik fület, egy .c fájlt, és abban van benne a kép progmemként. Ez sikerült is, működik tökéletesen, viszont így ugye korlátozott a hely, ezért szeretném ezt sd-ről csinálni, hogyan tudnám a képet sd-ről megnyitni? Tehát csak annyi kéne, hogy nem a másik fülön lévő .c fájlból nyit, hanem az sd-n lévő .c fájlból. Itt van a jelenlegi progi:
  1. #include <UTFT.h>
  2. #include <avr/pgmspace.h>
  3.  
  4. UTFT myGLCD(ITDB32S,38,39,40,41);   // Remember to change the model parameter to suit your display module!
  5.  
  6. extern unsigned int kep[0x1D4C];
  7.  
  8. void setup(){
  9.   myGLCD.InitLCD();
  10.   myGLCD.fillScr(255, 255, 255);
  11.   myGLCD.drawBitmap (0, 0, 300, 224, kep);
  12. }
  13.  
  14. void loop()
  15. {
  16.  
  17. }
(#) andykaaa válasza csatti2 hozzászólására (») Aug 27, 2015 /
 
Koszi
(#) kapu48 válasza erdeidominik1999 hozzászólására (») Aug 27, 2015 /
 
A fájlrendszer kezelés független téma az LCD-töl.

Van az Arduino IDE-ben SPI és SD lib ezek kellenek, vannak bennük samplek is.
A használatukról szinte mindent megtalálsz (kis gyakorlással).

Nem tudsz képet közvetlenül SD-röl >> LCD-re tölteni, ezért kel egy közbenső puffer ram, amibe olvasod a képet, innentől az LCD-re küldés már detto.
(#) erdeidominik1999 válasza kapu48 hozzászólására (») Aug 27, 2015 /
 
Az lcd tiszta sor, azt sokszor használom, viszont ha jól értelmezem ezt a progit, akkor a kep változó az egy integeres tömb, aminek 0x1D4C eleme van, ugye? Tehát ha jól értem, akkor ha
  1. while(myFile.available()){
  2. kep[index]=myFile.read();
  3. index++;
  4. }

ezzel jónak kéne lennie, nem?
A hozzászólás módosítva: Aug 27, 2015
(#) Kovidivi válasza erdeidominik1999 hozzászólására (») Aug 27, 2015 /
 
Amíg ki nem fogysz a memóriából, ugyanis a sima változó ott foglal helyet!
(#) erdeidominik1999 válasza Kovidivi hozzászólására (») Aug 28, 2015 /
 
Akkor hogyan kéne lennie?
(#) Kovidivi válasza erdeidominik1999 hozzászólására (») Aug 28, 2015 /
 
Nem tudom. Én csak a korlátról tájékoztattalak. Ha a képed elég kicsi, akkor nem lesz gond. Ha háttérkép méretű képpel akarsz dolgozni, más (saját) megoldást kell találnod (írnod).
A 0x1D7C decimálisan 7500. Ha byte-ról beszélünk, akkor ez 7500byte memóriát igényel. Tehát biztos nem Arduino Uno-ról van szó, mert neki csak 2K memóriája van. Olyat is csinálhatnál, hogy kisebb részekben rajzoltatod ki a képet. Betöltesz a memóriába 7.5K-t, ezt kirajzoltatod, majd ennek a folytatásába mehet a következő 7.5K-nyi kép, és így tovább.
A hozzászólás módosítva: Aug 28, 2015
(#) Brian88 válasza erdeidominik1999 hozzászólására (») Aug 28, 2015 /
 
Szia
Alap esetben, mikor a .c fájlod tartalmazza a képet, maga a kép bekerül a flash memóriába, és onnan közvetlenül kerül ki az LCD-re, így nem használja a RAM-ot.

Meg kell nézni mekkora adatcsomagokat kell küldeni az LCD-nek. Gondolom 1 bájt egyszerre, hisz tömböket használ az alap program is. Olyan programot kellene írnod, ahol beolvasol 1 bájtot az SD-ről, majd kiíratod az LCD-re, így szinte alig kell RAM. A pixelek sorok/oszlopokat neked kell léptetned.

VAGY

Ha jól értem "myGLCD.drawBitmap (0, 0, 300, 224, kep);" itt azt adod meg, hogy xy pontól xy pontig rajzoljon, mi lenne ha pl:
for(y=0;y<sorok_szama;y++)
{
for(x=0;x<oszlopok_szama;x++)
{
//ide illesz be egy olvasó függvényt, ami az SD-ről beolvassa a következő pixelt a "pixel" változódba
myGLCD.drawBitmap (y, x, y+1, x+1, pixel);
}}

//Feltéve ha lehet egyáltalán 1db pixel kirajzoltatni a függvényel
/A kép frissítést jelentősen lelassíthatja, hogy az Arduino/SD kártya olvasás nem túlságosan gyors, így érdemes egyszerűbb, statikus tartalmat megjeleníteni.
A hozzászólás módosítva: Aug 28, 2015
(#) Brian88 hozzászólása Aug 28, 2015 /
 
Nekem is lenne egy kérdésem, mostanában látom hogy AVR helyett STM32 fejlesztő panelt használnak Arduino IDE környezetben. Kis trükkel felveszik mint új panelt, és "elvileg" minden marad a régi programozás szempontjából. Mennyire kompatibilis a már meglévő Arduino könyvtárak az STM32-vel?
Szimpatikus az STM32, árban hasonló mint az AVR, de 4-5X akkora a teljesítménye.
(#) kapu48 válasza Brian88 hozzászólására (») Aug 28, 2015 /
 
Az elképzelésed hátul ütője, hogy borzasztó lassú lesz, ahogyan pixelenként mászik a kép befelé!

Itt minimum 510 Byteonként töltögetünk!

A módszer viszont teljesen LCD függő!
Milyen LCD? Színes, Mono?
A hozzászólás módosítva: Aug 28, 2015
(#) Kovidivi válasza Brian88 hozzászólására (») Aug 28, 2015 /
 
Szia.
Szerintem a kompatibilitás még gyerekcipőben jár. Komolyabb lib-ek valószínűleg nem működnek. Az Arduinohoz hivatalosan nem tartozik, ezért komoly támogatást nem kap, csak a felhasználóktól, ami csekély. Google keresővel az Arduino Uno-ra 16x több találatot kapsz, ebből lehet következtetni.
(#) ALI hozzászólása Aug 28, 2015 /
 
Sziasztok.

Egy 12V motor fordulatát szeretném szabályozni.
A mellékelt rajz megfelel vagy esetleg kell még valamilyen alkatrészt be raknom?

Köszi
(#) csatti2 válasza ALI hozzászólására (») Aug 28, 2015 /
 
Nem elég. Tegyél be egy védődiódát a motor csatlakozásaira (pl. 1N4148, a lényeg, hogy nagyobb áramot bírjon mint a motor árama, 1N4004 vagy hasonló is megteszi ha csak az van), nélküle nagyon hamar elfáradhat a mosfet . Berakhatsz még egy 100nF-os zavarszűrő kondit is a motor lábai közé. A 10k-s ellenállást kicserélheted 100k-ra (vagy akár 1M-re is). Tegyél be egy 1-2k-s ellenállást az arduino és az N-MOSFET közé (a mosfet-nek is van saját kapacitása, ráadásul kritikus meghibásodásnál megmentheti a mikrokontrollered). Ez az ellenállás lehet nagyobb is , ha nem használsz PWM-et (R1 viszont legalább a tízszerese legyen ennek). Ha az arduino-t USB-ről táplálod, akkor viszont be kellhet iktatni egy meghajtó tranzisztort is (kevés lehet a Vgs), vagy másik mosfet-et választasz, aminek alacsonyabb a Vgs(on)-ja.
A hozzászólás módosítva: Aug 28, 2015
(#) ALI válasza csatti2 hozzászólására (») Aug 28, 2015 /
 
Az arduino-t tápról üzemeltetem. 12V 3A. PWM-et akarok használni.
(#) csatti2 válasza ALI hozzászólására (») Aug 28, 2015 /
 
Mennyi lesz a motoráram?
(#) ALI válasza csatti2 hozzászólására (») Aug 28, 2015 /
 
A motor külön tápot kap, 8-10 A
(#) csatti2 válasza ALI hozzászólására (») Aug 28, 2015 /
 
A mosfetre komoly hűtést szerelj, nagyon fog melegedni. 15A körüli fast switching (kapcsoló) diódát nézzél.
Arduinonak minek a 3A-s táp egyébként? Még az 1A-t se fogja bírni kihajtani (már az 500mA is sok lehet).
A hozzászólás módosítva: Aug 28, 2015
(#) ALI válasza csatti2 hozzászólására (») Aug 28, 2015 /
 
Ilyenem van FES16BT 100V 16A gondolom ez jó lesz.
A többi alkatrész akkor az kell amit írtál?
(#) csatti2 válasza ALI hozzászólására (») Aug 28, 2015 / 1
 
Igen, jónak tűnik. Így van. A PWM miatt 1k körüli ellenállás az arduino és mosfet közé. 100k a mosfet gate és föld közé. Dióda motor kimenetek közé (katóddal a 12V-nak természetesen, különben rövidzár lenne ), 100nF szűrőkondi szintén vele párhuzamosan (vagy több kisebb párhuzamosan).
(#) ALI válasza csatti2 hozzászólására (») Aug 28, 2015 /
 
Köszi a segítséget!
(#) kapu48 válasza Brian88 hozzászólására (») Aug 28, 2015 /
 
Válaszd az Arduino DUEt az is ARM vezérlős.
És már elég jó támogatása van!
(#) erdeidominik1999 válasza Brian88 hozzászólására (») Aug 28, 2015 /
 
Köszi, nem rossz ötlet, ki fogom próbálni, hogy lehet-e egy pixelt, de csak vasárnap leszek arduinó közelben. Egyébként akartam is kérdezni, hogy ha due-t használok, nem lehetne valahogy gyorsítani az sd olvasást?
(#) kapu48 válasza erdeidominik1999 hozzászólására (») Aug 29, 2015 /
 
Meghívhatod Full Sped-el és kétszer olyan gyors lesz!
Csak győzze az SD kártyád!

  1. // Initialize SdFat or print a detailed error message and halt
  2.   // Use half speed like the native library.
  3.   // change to SPI_FULL_SPEED for more performance.
  4.  
  5.  // if (!sd.begin(chipSelect, SPI_HALF_SPEED)) {  // ez az alapp
  6.   if (!sd.begin(chipSelect, SPI_FULL_SPEED)) {
  7.     sd.initErrorHalt();
  8.   }
  9.  
  10. Ezek lehetnek:
  11. // SPI divisor constants
  12. /** Set SCK to max rate of F_CPU/2. */
  13. uint8_t const SPI_FULL_SPEED = 2;
  14. /** Set SCK rate to F_CPU/3 for Due */
  15. uint8_t const SPI_DIV3_SPEED = 3;
  16. /** Set SCK rate to F_CPU/4. */
  17. uint8_t const SPI_HALF_SPEED = 4;
  18. /** Set SCK rate to F_CPU/6 for Due */
  19. uint8_t const SPI_DIV6_SPEED = 6;
  20. /** Set SCK rate to F_CPU/8. */
  21. uint8_t const SPI_QUARTER_SPEED = 8;
  22. /** Set SCK rate to F_CPU/16. */
  23. uint8_t const SPI_EIGHTH_SPEED = 16;
  24. /** Set SCK rate to F_CPU/32. */
  25. uint8_t const SPI_SIXTEENTH_SPEED = 32;
A hozzászólás módosítva: Aug 29, 2015
(#) erdeidominik1999 válasza kapu48 hozzászólására (») Aug 29, 2015 /
 
Köszönöm, ki fogom próbálni.
(#) simley hozzászólása Aug 30, 2015 /
 
Siasztok, szeretnék építeni arduinoval egy internetről kapcaolható ledet.
Nagyon kezdő vagyok, még az arduino sincs meg.
Milyen platformot vegyek?
Hol tudok meh tanulni programozni?
(#) erdeidominik1999 válasza simley hozzászólására (») Aug 30, 2015 /
 
A programozást legegyszerűbben a 60 nap alatt arduinóval tudod megtanulni, hogy milyen ardut vegyél az attól függ, hogy mit szeretnél kihozni belőle, gondolom később nem csak egy ledet akarsz kapcsolgatni, tehát én megát vennék.
(#) simley válasza erdeidominik1999 hozzászólására (») Aug 30, 2015 /
 
Most at megát vegyek? uno akartam
a tavir 60 napos tanfolyammal sikerülhet programozni ledeket
(#) TavIR-AVR válasza simley hozzászólására (») Aug 30, 2015 / 1
 
A tanfolyam UNO és Mega lappal is elvégezhető.
Az UNO az ára és a nagyobb elterjedtsége miatt lett a tanfolyam része. Meg van aki maga rakta össze breadboardon. Erre a Mega2560 chip esélytelen, míg az ATMega28P DIP tokban simán rendben van.

Utánépíteni akarsz vagy megtanulni?
Az ethernet az nem az alap, hanem kicsit tovább van. Csomagelemzés, ajax/javascript
De a LED kapcsolgatásra egyszerűsítenék:

ESP8266 vagy ESP-01 modul NodeMCU-val. Ebben 8 sor és kész
A hozzászólás módosítva: Aug 30, 2015
Következő: »»   147 / 863
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