-
GAMEPOD.hu
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
MrChris
nagyúr
Lehet alap kérdéseket kérdezni?
Ebből a példából kiindulva azt akartam, oop módon csak 1 ledet villogtasson, ez ugye csak annyi hogy csak egy LedBlink led-t hozok létre. Viszont szerettem volna, kívülről (nemtom mi a helyes kifejezés) ellenőrizni, hogy éppen világít e vagy sem. Erre nem tudtam mást kitalálni, mint hogy a void frissites()-t int frissites()-re írtam át, végén egy return state-el. Gondolom ezt így kell ahhoz, hogy kívülről megkapjam a state értékét. A loop-ban egy feltétellel kérdezem, hogy high vagy low, kiíratva a konzolra, hogy 'be' vagy 'ki' állaptban van e.
Hogyan lehetne azt megoldani, hogy csak akkor írja ki ha változik az értéke? Eddig csak úgy tudom ha van egy állapot változóm és azt is kérdezgetem a led.frissites()-el együtt és kapcsolgatom. Van ennél elegánsabb megoldás? Ami eszembe jutott esetleg ezt tegyem bele valahogy az osztályba és egy változón-értékadáson keresztül lehessen ezt a funkcióját bekapcsolni?
Hogyan tudom ezt a LedBlink led példányt leállítani? -
Bazs87
tag
Sziasztok!
A segítségeteket szeretném kérni. Vettem egy nodemcu-szerű "izét"
[link]a gondom, hogy a hátulján a következő instrukciók szerepelnek:
- install ch340g driver
- use 9600bps baud rate
- connect to wifiA drivert megtaláltam/installáltam/, de sajnos nem tudom honnan induljak el, a blink programot próbálom feltölteni, de sajnos nem jutok előre bármilyen alaplapot választok. (com számot kap)
Valaki találkozott már ilyennel?Köszi előre is!
-
fpeter84
senior tag
A nodemcu feliratból kiindulva feltehetően AT parancsokra reagáló LUA-s firmware van most rajta. Ha eredeti formájában szeretnéd használni akkor a nodemcu AT command stb kifejezésekre keresve indulj el, ha pedig arduino IDE-ből szeretnéd programozni akkor ezt találtam rá így hirtelen: [link]
-
csubuka
addikt
válasz fpeter84 #9756 üzenetére
Nekem ugyanilyen board-om volt kb. És alapból ment Arduino IDE-vel. Persze lehet, hogy más FW-t küldtek, de a hátulján ugyanez a 9600 baud rate felirat volt, azzal meg aztán hibát dobott az Arduino IDE. A jó baud rate-el meg azonnal ment további mókolás nélkül.
*Bocsi persze a boards manager-es állítgatások kellenek igen a működéshez.
[ Szerkesztve ]
-
Bazs87
tag
válasz fpeter84 #9756 üzenetére
elég hülye hibába futottam:
az esp8266 mintaprojekt blink mintaprogramjával próbálkoztam. A videón szereplő beállításokat használva.
A gond, h valamiért a lábkiosztás nem passzolt és nem villogott a led (mert hát mire is vár ilyenkor az ember)feltöltötte hiba nélkül, csak ugye nem villogott szerencsétlen
a videó után rámértem a lábra...persze, hogy megyköszönöm a felhomályosítást
-
fpeter84
senior tag
vagy a nodemcu, vagy az arduino lábkiosztása ,vagy egyik sem azonos az esp eredeti gpio láb számozásával...
itt látszik is, hogy a Dn és GPIOn számozás elmászott valamilyen ostoba oknál fogva...
valamiért annó az uno mega korában kitalálták hogy nekik nem jó az hogy PORTA.1 meg PORTC.5, hanem D1, D2, Dn elnevezés kell, és valamiért ezen is hasonlóan átcímkézték a lábakat... Az ESP32 alapú LOLIN32-n már szerencsére nem...
(#9757) csubukaa 9600 a lua firmware baudja, de a bootloader amit az ide-ben kell állítani az eltérő, a videó szerint 115200
[ Szerkesztve ]
-
DrojDtroll
addikt
Sziasztok!
Van olyan megfizethető árú gyorsulásmérő szenzor ami alkalmas egy hattengelyss robotokat vibracioinak mérésére?
-
fpeter84
senior tag
válasz DrojDtroll #9762 üzenetére
azt kell lereagálni ha túllép egy küszöbértéket, vagy folyamatosan akarod mérni és loggolni?
-
MrChris
nagyúr
Az AccelStepper-ben meg lehet változtatni közvetlen a lábak vezérlését? Azt vettem észre, hogy más sorrendben villogtatja a vezérlőt és rögtön ki is derült, hogy a 2 lépés stimmel, 2 nem. A szimultán 1,0,1,0-t vagy 0,1,0,1-t a 28BYJ-48 motor nem kedveli.
Közben rájöttem, hogy az AccelStepper.cpp-ban lehet átírni. Viszont másik kérdésem, hogy sehogy se sikerül áramtalanítan a motort. A disableOutputs ()-al próbáltam.
[ Szerkesztve ]
-
fpeter84
senior tag
Valaki tudja értelmezni, hogy a gyakorlatban mit is csinál ez a részlet a LOLIN32 kapcsrajzán?
Más értelmét nem látnám, minthogy alapból az USB VBUS-ra köti a belső 5V hálózatot, de ha az utóbbira az 5V lábról kerül a tápfesz, akkor szétválasztja a két oldalt hogy az USB 5V-ja ne találkozzon szembe a külső forrás 5V-al... De nem igazán értem hogy a gyakorlatban hogyan is működhet...
-
tvamos
nagyúr
válasz DrojDtroll #9762 üzenetére
Ahoz valami gyors cucc kene gondolom... En a LIS2DS12TR-t valasztottam.
"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János
-
cont
újonc
Szervusztok!
Segítségeteket kérem.
Összeállítás:
- ER-AS-SSD1963 LCD érintőképernyő meghajtó Arduino shield
[https://www.buydisplay.com/arduino/ER-AS-SSD1963_Datasheet.pdf][link]- ER-TFTM070-4V2.1 TFT LCD modul
[https://www.buydisplay.com/download/manual/ER-TFTM070-4V2.1_Datasheet.pdf][link]- Arduino DUE
Több szoftvert is feltöltöttem az Arduinora, de egyikkel sem működik. A háttérvilágítás megy, de a képernyő sötét marad és csak akkor jelenik meg egy pillanatkép, ha az alaplap vagy a shield RESET gombját megnyomom. A szoftverek hibakód nélkül lefutottak. Mi lehet a probléma, hogy tudom elhárítani?
Ez a szoftver, amit a GitHubról töltöttem le:
// UTouch_ButtonTest (C)2010-2014 Henning Karlsen
// web: http://www.henningkarlsen.com/electronics
//
// This program is a quick demo of how create and use buttons.
//
// This program requires the UTFT library.
//
// It is assumed that the display module is connected to an
// appropriate shield or that you know how to change the pin
// numbers in the setup.
//#include <UTFT.h>
#include <UTouch.h>// Initialize display
// ------------------
// Set the pins to the correct ones for your development board
// -----------------------------------------------------------
// Standard Arduino Uno/2009 Shield : <display model>,19,18,17,16
// Standard Arduino Mega/Due shield : <display model>,38,39,40,41
// CTE TFT LCD/SD Shield for Arduino Due : <display model>,25,26,27,28
// Teensy 3.x TFT Test Board : <display model>,23,22, 3, 4
// ElecHouse TFT LCD/SD Shield for Arduino Due : <display model>,22,23,31,33
//
// Remember to change the model parameter to suit your display module!
UTFT myGLCD(ITDB50,38,39,40,41);
//UTFT myGLCD(SSD1963_800,19,18,17,16);
// Initialize touchscreen
// ----------------------
// Set the pins to the correct ones for your development board
// -----------------------------------------------------------
// Standard Arduino Uno/2009 Shield : 15,10,14, 9, 8
// Standard Arduino Mega/Due shield : 6, 5, 4, 3, 2
// CTE TFT LCD/SD Shield for Arduino Due : 6, 5, 4, 3, 2
// Teensy 3.x TFT Test Board : 26,31,27,28,29
// ElecHouse TFT LCD/SD Shield for Arduino Due : 25,26,27,29,30
//
UTouch myTouch( 6, 5, 4, 3, 2);// Declare which fonts we will be using
extern uint8_t BigFont[];int x, y;
char stCurrent[20]="";
int stCurrentLen=0;
char stLast[20]="";/*************************
** Custom functions **
*************************/void drawButtons()
{
// Draw the upper row of buttons
for (x=0; x<5; x++)
{
myGLCD.setColor(0, 0, 255);
myGLCD.fillRoundRect (10+(x*60), 10, 60+(x*60), 60);
myGLCD.setColor(255, 255, 255);
myGLCD.drawRoundRect (10+(x*60), 10, 60+(x*60), 60);
myGLCD.printNumI(x+1, 27+(x*60), 27);
}
// Draw the center row of buttons
for (x=0; x<5; x++)
{
myGLCD.setColor(0, 0, 255);
myGLCD.fillRoundRect (10+(x*60), 70, 60+(x*60), 120);
myGLCD.setColor(255, 255, 255);
myGLCD.drawRoundRect (10+(x*60), 70, 60+(x*60), 120);
if (x<4)
myGLCD.printNumI(x+6, 27+(x*60), 87);
}
myGLCD.print("0", 267, 87);
// Draw the lower row of buttons
myGLCD.setColor(0, 0, 255);
myGLCD.fillRoundRect (10, 130, 150, 180);
myGLCD.setColor(255, 255, 255);
myGLCD.drawRoundRect (10, 130, 150, 180);
myGLCD.print("Clear", 40, 147);
myGLCD.setColor(0, 0, 255);
myGLCD.fillRoundRect (160, 130, 300, 180);
myGLCD.setColor(255, 255, 255);
myGLCD.drawRoundRect (160, 130, 300, 180);
myGLCD.print("Enter", 190, 147);
myGLCD.setBackColor (0, 0, 0);
}void updateStr(int val)
{
if (stCurrentLen<20)
{
stCurrent[stCurrentLen]=val;
stCurrent[stCurrentLen+1]='\0';
stCurrentLen++;
myGLCD.setColor(0, 255, 0);
myGLCD.print(stCurrent, LEFT, 224);
}
else
{
myGLCD.setColor(255, 0, 0);
myGLCD.print("BUFFER FULL!", CENTER, 192);
delay(500);
myGLCD.print(" ", CENTER, 192);
delay(500);
myGLCD.print("BUFFER FULL!", CENTER, 192);
delay(500);
myGLCD.print(" ", CENTER, 192);
myGLCD.setColor(0, 255, 0);
}
}// Draw a red frame while a button is touched
void waitForIt(int x1, int y1, int x2, int y2)
{
myGLCD.setColor(255, 0, 0);
myGLCD.drawRoundRect (x1, y1, x2, y2);
while (myTouch.dataAvailable())
myTouch.read();
myGLCD.setColor(255, 255, 255);
myGLCD.drawRoundRect (x1, y1, x2, y2);
}/*************************
** Required functions **
*************************/void setup()
{
// Initial setup
myGLCD.InitLCD();
myGLCD.clrScr();myTouch.InitTouch();
myTouch.setPrecision(PREC_MEDIUM);myGLCD.setFont(BigFont);
myGLCD.setBackColor(0, 0, 255);
drawButtons();
}void loop()
{
while (true)
{
if (myTouch.dataAvailable())
{
myTouch.read();
x=myTouch.getX();
y=myTouch.getY();if ((y>=10) && (y<=60)) // Upper row
{
if ((x>=10) && (x<=60)) // Button: 1
{
waitForIt(10, 10, 60, 60);
updateStr('1');
}
if ((x>=70) && (x<=120)) // Button: 2
{
waitForIt(70, 10, 120, 60);
updateStr('2');
}
if ((x>=130) && (x<=180)) // Button: 3
{
waitForIt(130, 10, 180, 60);
updateStr('3');
}
if ((x>=190) && (x<=240)) // Button: 4
{
waitForIt(190, 10, 240, 60);
updateStr('4');
}
if ((x>=250) && (x<=300)) // Button: 5
{
waitForIt(250, 10, 300, 60);
updateStr('5');
}
}if ((y>=70) && (y<=120)) // Center row
{
if ((x>=10) && (x<=60)) // Button: 6
{
waitForIt(10, 70, 60, 120);
updateStr('6');
}
if ((x>=70) && (x<=120)) // Button: 7
{
waitForIt(70, 70, 120, 120);
updateStr('7');
}
if ((x>=130) && (x<=180)) // Button: 8
{
waitForIt(130, 70, 180, 120);
updateStr('8');
}
if ((x>=190) && (x<=240)) // Button: 9
{
waitForIt(190, 70, 240, 120);
updateStr('9');
}
if ((x>=250) && (x<=300)) // Button: 0
{
waitForIt(250, 70, 300, 120);
updateStr('0');
}
}if ((y>=130) && (y<=180)) // Upper row
{
if ((x>=10) && (x<=150)) // Button: Clear
{
waitForIt(10, 130, 150, 180);
stCurrent[0]='\0';
stCurrentLen=0;
myGLCD.setColor(0, 0, 0);
myGLCD.fillRect(0, 224, 319, 239);
}
if ((x>=160) && (x<=300)) // Button: Enter
{
waitForIt(160, 130, 300, 180);
if (stCurrentLen>0)
{
for (x=0; x<stCurrentLen+1; x++)
{
stLast[x]=stCurrent[x];
}
stCurrent[0]='\0';
stCurrentLen=0;
myGLCD.setColor(0, 0, 0);
myGLCD.fillRect(0, 208, 319, 239);
myGLCD.setColor(0, 255, 0);
myGLCD.print(stLast, LEFT, 208);
}
else
{
myGLCD.setColor(255, 0, 0);
myGLCD.print("BUFFER EMPTY", CENTER, 192);
delay(500);
myGLCD.print(" ", CENTER, 192);
delay(500);
myGLCD.print("BUFFER EMPTY", CENTER, 192);
delay(500);
myGLCD.print(" ", CENTER, 192);
myGLCD.setColor(0, 255, 0);
}
}
}
}
}
}Nem ez volt az egyetlen program amit feltöltöttem, de mindegyikkel így jártam. Volt olyan is, amelyik nem használta az érintő funkciókat, csak a megjelenítést, az sem működött.
[ Szerkesztve ]
-
fpeter84
senior tag
-
cont
újonc
válasz fpeter84 #9771 üzenetére
Nem, ezt a beállítást a szerző javasolta, mert kompatíbilis az SSD1963-mal. De az SSD1963-at is beállítottam a programban, ugyanaz a jelenség.
A legutolsó próba ezzel a beállítással futott:
// UTouch_ButtonTest (C)2010-2014 Henning Karlsen
// web: http://www.henningkarlsen.com/electronics
//
// This program is a quick demo of how create and use buttons.
//
// This program requires the UTFT library.
//
// It is assumed that the display module is connected to an
// appropriate shield or that you know how to change the pin
// numbers in the setup.
//
#include <UTFT.h>
#include <UTouch.h>
// Initialize display
// ------------------
// Set the pins to the correct ones for your development board
// -----------------------------------------------------------
// Standard Arduino Uno/2009 Shield : <display model>,19,18,17,16
// Standard Arduino Mega/Due shield : <display model>,38,39,40,41
// CTE TFT LCD/SD Shield for Arduino Due : <display model>,25,26,27,28
// Teensy 3.x TFT Test Board : <display model>,23,22, 3, 4
// ElecHouse TFT LCD/SD Shield for Arduino Due : <display model>,22,23,31,33
//
// Remember to change the model parameter to suit your display module!
//UTFT myGLCD(ITDB50,38,39,40,41);
UTFT myGLCD(SSD1963_800,19,18,17,16);
// Initialize touchscreen
// ----------------------
// Set the pins to the correct ones for your development board
// -----------------------------------------------------------
// Standard Arduino Uno/2009 Shield : 15,10,14, 9, 8
// Standard Arduino Mega/Due shield : 6, 5, 4, 3, 2
// CTE TFT LCD/SD Shield for Arduino Due : 6, 5, 4, 3, 2
// Teensy 3.x TFT Test Board : 26,31,27,28,29
// ElecHouse TFT LCD/SD Shield for Arduino Due : 25,26,27,29,30
//
UTouch myTouch( 6, 5, 4, 3, 2);
// Declare which fonts we will be using
extern uint8_t BigFont[];
int x, y;
char stCurrent[20]="";
int stCurrentLen=0;
char stLast[20]="";
/*************************
** Custom functions **
*************************/
void drawButtons()
{
// Draw the upper row of buttons
for (x=0; x<5; x++)
{
myGLCD.setColor(0, 0, 255);
myGLCD.fillRoundRect (10+(x*60), 10, 60+(x*60), 60);
myGLCD.setColor(255, 255, 255);
myGLCD.drawRoundRect (10+(x*60), 10, 60+(x*60), 60);
myGLCD.printNumI(x+1, 27+(x*60), 27);
}
// Draw the center row of buttons
for (x=0; x<5; x++)
{
myGLCD.setColor(0, 0, 255);
myGLCD.fillRoundRect (10+(x*60), 70, 60+(x*60), 120);
myGLCD.setColor(255, 255, 255);
myGLCD.drawRoundRect (10+(x*60), 70, 60+(x*60), 120);
if (x<4)
myGLCD.printNumI(x+6, 27+(x*60), 87);
}
myGLCD.print("0", 267, 87);
// Draw the lower row of buttons
myGLCD.setColor(0, 0, 255);
myGLCD.fillRoundRect (10, 130, 150, 180);
myGLCD.setColor(255, 255, 255);
myGLCD.drawRoundRect (10, 130, 150, 180);
myGLCD.print("Clear", 40, 147);
myGLCD.setColor(0, 0, 255);
myGLCD.fillRoundRect (160, 130, 300, 180);
myGLCD.setColor(255, 255, 255);
myGLCD.drawRoundRect (160, 130, 300, 180);
myGLCD.print("Enter", 190, 147);
myGLCD.setBackColor (0, 0, 0);
}
void updateStr(int val)
{
if (stCurrentLen<20)
{
stCurrent[stCurrentLen]=val;
stCurrent[stCurrentLen+1]='\0';
stCurrentLen++;
myGLCD.setColor(0, 255, 0);
myGLCD.print(stCurrent, LEFT, 224);
}
else
{
myGLCD.setColor(255, 0, 0);
myGLCD.print("BUFFER FULL!", CENTER, 192);
delay(500);
myGLCD.print(" ", CENTER, 192);
delay(500);
myGLCD.print("BUFFER FULL!", CENTER, 192);
delay(500);
myGLCD.print(" ", CENTER, 192);
myGLCD.setColor(0, 255, 0);
}
}
// Draw a red frame while a button is touched
void waitForIt(int x1, int y1, int x2, int y2)
{
myGLCD.setColor(255, 0, 0);
myGLCD.drawRoundRect (x1, y1, x2, y2);
while (myTouch.dataAvailable())
myTouch.read();
myGLCD.setColor(255, 255, 255);
myGLCD.drawRoundRect (x1, y1, x2, y2);
}
/*************************
** Required functions **
*************************/
void setup()
{
// Initial setup
myGLCD.InitLCD();
myGLCD.clrScr();
myTouch.InitTouch();
myTouch.setPrecision(PREC_MEDIUM);
myGLCD.setFont(BigFont);
myGLCD.setBackColor(0, 0, 255);
drawButtons();
}
void loop()
{
while (true)
{
if (myTouch.dataAvailable())
{
myTouch.read();
x=myTouch.getX();
y=myTouch.getY();
if ((y>=10) && (y<=60)) // Upper row
{
if ((x>=10) && (x<=60)) // Button: 1
{
waitForIt(10, 10, 60, 60);
updateStr('1');
}
if ((x>=70) && (x<=120)) // Button: 2
{
waitForIt(70, 10, 120, 60);
updateStr('2');
}
if ((x>=130) && (x<=180)) // Button: 3
{
waitForIt(130, 10, 180, 60);
updateStr('3');
}
if ((x>=190) && (x<=240)) // Button: 4
{
waitForIt(190, 10, 240, 60);
updateStr('4');
}
if ((x>=250) && (x<=300)) // Button: 5
{
waitForIt(250, 10, 300, 60);
updateStr('5');
}
}
if ((y>=70) && (y<=120)) // Center row
{
if ((x>=10) && (x<=60)) // Button: 6
{
waitForIt(10, 70, 60, 120);
updateStr('6');
}
if ((x>=70) && (x<=120)) // Button: 7
{
waitForIt(70, 70, 120, 120);
updateStr('7');
}
if ((x>=130) && (x<=180)) // Button: 8
{
waitForIt(130, 70, 180, 120);
updateStr('8');
}
if ((x>=190) && (x<=240)) // Button: 9
{
waitForIt(190, 70, 240, 120);
updateStr('9');
}
if ((x>=250) && (x<=300)) // Button: 0
{
waitForIt(250, 70, 300, 120);
updateStr('0');
}
}
if ((y>=130) && (y<=180)) // Upper row
{
if ((x>=10) && (x<=150)) // Button: Clear
{
waitForIt(10, 130, 150, 180);
stCurrent[0]='\0';
stCurrentLen=0;
myGLCD.setColor(0, 0, 0);
myGLCD.fillRect(0, 224, 319, 239);
}
if ((x>=160) && (x<=300)) // Button: Enter
{
waitForIt(160, 130, 300, 180);
if (stCurrentLen>0)
{
for (x=0; x<stCurrentLen+1; x++)
{
stLast[x]=stCurrent[x];
}
stCurrent[0]='\0';
stCurrentLen=0;
myGLCD.setColor(0, 0, 0);
myGLCD.fillRect(0, 208, 319, 239);
myGLCD.setColor(0, 255, 0);
myGLCD.print(stLast, LEFT, 208);
}
else
{
myGLCD.setColor(255, 0, 0);
myGLCD.print("BUFFER EMPTY", CENTER, 192);
delay(500);
myGLCD.print(" ", CENTER, 192);
delay(500);
myGLCD.print("BUFFER EMPTY", CENTER, 192);
delay(500);
myGLCD.print(" ", CENTER, 192);
myGLCD.setColor(0, 255, 0);
}
}
}
}
}
}[ Szerkesztve ]
-
olli
tag
// Standard Arduino Mega/Due shield : <display model>,38,39,40,41
UTFT myGLCD(SSD1963_800480,38,39,40,41); //(byte model, int RS, int WR, int CS, int RST, int SER)UTouch myTouch( 43, 42, 44, 45, 46); //byte tclk, byte tcs, byte din, byte dout, byte irq
Ezekkel a beállításokkal?
A DUE-nak saját
#include <UTFT.h>
#include <URTouch.h>
könyvtára van.[ Szerkesztve ]
By cool !
-
DrojDtroll
addikt
válasz fpeter84 #9763 üzenetére
A robot beállítása és futtatott program alapján nagyon pontosan kiszámolom a koordinátákat. Mozgás közben folyamatosan mérem és logolom az elfordulást és a lineáris gyorsulást. A mért adatokból kiszámolom azt hogy ténylegesen, hol is van a fej, és ezt hasonlítom az elvártakhoz.
Ezt szeretném megvalósítani.
-
tvamos
nagyúr
válasz DrojDtroll #9778 üzenetére
Frankó.
"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János
-
Pubszon
veterán
Üdv.
Arduino uno és ilyen ESP8266 modul, az 5V-os panellal.
Ezekkel szeretnék egy egyszerű HTML WEB lapot, amire kiíratok néhány egyszerű adatot.
Van egy jó és lehetőleg egyszerű leírás?
Köszi.
[ Szerkesztve ]
ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Janos250
őstag
válasz Pubszon #9780 üzenetére
Jó leírást nem tudok, de egy ESP8266-ra készült egyszerű nyomásmérő programot tettem fel mintának. A program ESP8266-on fut, mert hozzá az UNO már teljesen felesleges. Talán érthető a program, ha nem, akkor bocs, és sztorno.
http://arduinouser.hu/mintak_esp8266_ra/nyomasmero_minta_esp8266/nyomasmero_minta_esp8266.ino.txtTehát az UNO+ESP01 helyett javasolom egy ESP12 használatát. A feltett program is azon futott hajdanában, mikor használtam. (Kiírta telefonra a benzinnyomást - illetve egy kódolt értéket - hogy figyelni tudjam a benzinpumpa működését).
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
tvamos
nagyúr
válasz Janos250 #9781 üzenetére
Hello!
Ma egy olyan problemaba utkoztem, hogy ujra kellett telepitenem az Arduino frameworkot, es a ESP32 OLED V2.0 TTGO modulomon szetesett a kep. Ugy ertem, hogy eddig kiirtam a kijelzore az IP-t, meg hogy mit szereten a szamitogep tole, de most nincs kep rajta.
Nem tudja valaki a megoldast? Mit rontottam el? Minden lefordul hiba nelkul."Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János
-
olli
tag
[CODE// URTouch_ButtonTest
// Copyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. All right reserved
// web: http://www.RinkyDinkElectronics.com/
//
// This program is a quick demo of how create and use buttons.
//
// This program requires the UTFT library.
//
// It is assumed that the display module is connected to an
// appropriate shield or that you know how to change the pin
// numbers in the setup.
//#include <UTFT.h>
#include <URTouch.h>// Initialize display
// ------------------
// Set the pins to the correct ones for your development board
// -----------------------------------------------------------
// Standard Arduino Uno/2009 Shield : <display model>,19,18,17,16
// Standard Arduino Mega/Due shield : <display model>,38,39,40,41
// CTE TFT LCD/SD Shield for Arduino Due : <display model>,25,26,27,28
// Teensy 3.x TFT Test Board : <display model>,23,22, 3, 4
// ElecHouse TFT LCD/SD Shield for Arduino Due : <display model>,22,23,31,33
//
// Remember to change the model parameter to suit your display module!
UTFT myGLCD(CTE32,25,26,27,28);// Initialize touchscreen
// ----------------------
// Set the pins to the correct ones for your development board
// -----------------------------------------------------------
// Standard Arduino Uno/2009 Shield : 15,10,14, 9, 8
// Standard Arduino Mega/Due shield : 6, 5, 4, 3, 2
// CTE TFT LCD/SD Shield for Arduino Due : 6, 5, 32, 3, 2
// Teensy 3.x TFT Test Board : 26,31,27,28,29
// ElecHouse TFT LCD/SD Shield for Arduino Due : 25,26,27,29,30
//
URTouch myTouch( 6, 5, 32, 3, 2);// Declare which fonts we will be using
extern uint8_t BigFont[];int x, y;
char stCurrent[20]="";
int stCurrentLen=0;
char stLast[20]="";/*************************
** Custom functions **
*************************/void drawButtons()
{
// Draw the upper row of buttons
for (x=0; x<5; x++)
{
myGLCD.setColor(0, 0, 255);
myGLCD.fillRoundRect (10+(x*60), 10, 60+(x*60), 60);
myGLCD.setColor(255, 255, 255);
myGLCD.drawRoundRect (10+(x*60), 10, 60+(x*60), 60);
myGLCD.printNumI(x+1, 27+(x*60), 27);
}
// Draw the center row of buttons
for (x=0; x<5; x++)
{
myGLCD.setColor(0, 0, 255);
myGLCD.fillRoundRect (10+(x*60), 70, 60+(x*60), 120);
myGLCD.setColor(255, 255, 255);
myGLCD.drawRoundRect (10+(x*60), 70, 60+(x*60), 120);
if (x<4)
myGLCD.printNumI(x+6, 27+(x*60), 87);
}
myGLCD.print("0", 267, 87);
// Draw the lower row of buttons
myGLCD.setColor(0, 0, 255);
myGLCD.fillRoundRect (10, 130, 150, 180);
myGLCD.setColor(255, 255, 255);
myGLCD.drawRoundRect (10, 130, 150, 180);
myGLCD.print("Clear", 40, 147);
myGLCD.setColor(0, 0, 255);
myGLCD.fillRoundRect (160, 130, 300, 180);
myGLCD.setColor(255, 255, 255);
myGLCD.drawRoundRect (160, 130, 300, 180);
myGLCD.print("Enter", 190, 147);
myGLCD.setBackColor (0, 0, 0);
}void updateStr(int val)
{
if (stCurrentLen<20)
{
stCurrent[stCurrentLen]=val;
stCurrent[stCurrentLen+1]='\0';
stCurrentLen++;
myGLCD.setColor(0, 255, 0);
myGLCD.print(stCurrent, LEFT, 224);
}
else
{
myGLCD.setColor(255, 0, 0);
myGLCD.print("BUFFER FULL!", CENTER, 192);
delay(500);
myGLCD.print(" ", CENTER, 192);
delay(500);
myGLCD.print("BUFFER FULL!", CENTER, 192);
delay(500);
myGLCD.print(" ", CENTER, 192);
myGLCD.setColor(0, 255, 0);
}
}// Draw a red frame while a button is touched
void waitForIt(int x1, int y1, int x2, int y2)
{
myGLCD.setColor(255, 0, 0);
myGLCD.drawRoundRect (x1, y1, x2, y2);
while (myTouch.dataAvailable())
myTouch.read();
myGLCD.setColor(255, 255, 255);
myGLCD.drawRoundRect (x1, y1, x2, y2);
}/*************************
** Required functions **
*************************/void setup()
{
// Initial setup
myGLCD.InitLCD();
myGLCD.clrScr();myTouch.InitTouch();
myTouch.setPrecision(PREC_MEDIUM);myGLCD.setFont(BigFont);
myGLCD.setBackColor(0, 0, 255);
drawButtons();
}void loop()
{
while (true)
{
if (myTouch.dataAvailable())
{
myTouch.read();
x=myTouch.getX();
y=myTouch.getY();if ((y>=10) && (y<=60)) // Upper row
{
if ((x>=10) && (x<=60)) // Button: 1
{
waitForIt(10, 10, 60, 60);
updateStr('1');
}
if ((x>=70) && (x<=120)) // Button: 2
{
waitForIt(70, 10, 120, 60);
updateStr('2');
}
if ((x>=130) && (x<=180)) // Button: 3
{
waitForIt(130, 10, 180, 60);
updateStr('3');
}
if ((x>=190) && (x<=240)) // Button: 4
{
waitForIt(190, 10, 240, 60);
updateStr('4');
}
if ((x>=250) && (x<=300)) // Button: 5
{
waitForIt(250, 10, 300, 60);
updateStr('5');
}
}if ((y>=70) && (y<=120)) // Center row
{
if ((x>=10) && (x<=60)) // Button: 6
{
waitForIt(10, 70, 60, 120);
updateStr('6');
}
if ((x>=70) && (x<=120)) // Button: 7
{
waitForIt(70, 70, 120, 120);
updateStr('7');
}
if ((x>=130) && (x<=180)) // Button: 8
{
waitForIt(130, 70, 180, 120);
updateStr('8');
}
if ((x>=190) && (x<=240)) // Button: 9
{
waitForIt(190, 70, 240, 120);
updateStr('9');
}
if ((x>=250) && (x<=300)) // Button: 0
{
waitForIt(250, 70, 300, 120);
updateStr('0');
}
}if ((y>=130) && (y<=180)) // Upper row
{
if ((x>=10) && (x<=150)) // Button: Clear
{
waitForIt(10, 130, 150, 180);
stCurrent[0]='\0';
stCurrentLen=0;
myGLCD.setColor(0, 0, 0);
myGLCD.fillRect(0, 224, 319, 239);
}
if ((x>=160) && (x<=300)) // Button: Enter
{
waitForIt(160, 130, 300, 180);
if (stCurrentLen>0)
{
for (x=0; x<stCurrentLen+1; x++)
{
stLast[x]=stCurrent[x];
}
stCurrent[0]='\0';
stCurrentLen=0;
myGLCD.setColor(0, 0, 0);
myGLCD.fillRect(0, 208, 319, 239);
myGLCD.setColor(0, 255, 0);
myGLCD.print(stLast, LEFT, 208);
}
else
{
myGLCD.setColor(255, 0, 0);
myGLCD.print("BUFFER EMPTY", CENTER, 192);
delay(500);
myGLCD.print(" ", CENTER, 192);
delay(500);
myGLCD.print("BUFFER EMPTY", CENTER, 192);
delay(500);
myGLCD.print(" ", CENTER, 192);
myGLCD.setColor(0, 255, 0);
}
}
}
}
}
}
]URTouch.h
/*
URTouch.h - Arduino/chipKit library support for Color TFT LCD Touch screens
Copyright (C)2016 Rinky-Dink Electronics, Henning Karlsen. All right reservedBasic functionality of this library are based on the demo-code provided by
ITead studio.You can find the latest version of the library at
http://www.RinkyDinkElectronics.com/This library is free software; you can redistribute it and/or
modify it under the terms of the CC BY-NC-SA 3.0 license.
Please see the included documents for further information.Commercial use of this library requires you to buy a license that
will allow commercial use. This includes using the library,
modified or not, as a tool to sell products.The license applies to all part of the library including the
examples and tools supplied with the library.
*/#ifndef URTouch_h
#define URTouch_h#define URTOUCH_VERSION 201
#if defined(__AVR__)
#include "Arduino.h"
#include "hardware/avr/HW_AVR_defines.h"
#elif defined(__PIC32MX__)
#include "WProgram.h"
#include "hardware/pic32/HW_PIC32_defines.h"
#elif defined(__arm__)
#include "Arduino.h"
#include "hardware/arm/HW_ARM_defines.h"
#endif#define PORTRAIT 0
#define LANDSCAPE 1#define PREC_LOW 1
#define PREC_MEDIUM 2
#define PREC_HI 3
#define PREC_EXTREME 4class URTouch
{
public:
int16_t TP_X ,TP_Y;URTouch(byte tclk, byte tcs, byte tdin, byte dout, byte irq);
void InitTouch(byte orientation = LANDSCAPE);
void read();
bool dataAvailable();
int16_t getX();
int16_t getY();
void setPrecision(byte precision);void calibrateRead();
private:
regtype *P_CLK, *P_CS, *P_DIN, *P_DOUT, *P_IRQ;
regsize B_CLK, B_CS, B_DIN, B_DOUT, B_IRQ;
byte T_CLK, T_CS, T_DIN, T_DOUT, T_IRQ;
long _default_orientation;
byte orient;
byte prec;
byte display_model;
long disp_x_size, disp_y_size, default_orientation;
long touch_x_left, touch_x_right, touch_y_top, touch_y_bottom;void touch_WriteData(byte data);
word touch_ReadData();#if defined(ENERGIA)
volatile uint32_t* portOutputRegister(int value);
volatile uint32_t* portInputRegister(int value);
#endif
};#endif
By cool !
-
olli
tag
Az Arduino IDE 1.8.7 verziót egyedül feltelepítve a DUE lappal futnak a beépített példák?
Ha az megy, az innen-onnan leszedettek meg nem, nyilván rossz a forrás, a hibaüzenetek segíthetnek.
Most megnéztem DUE-re egy saját programot, dobott egy csomó hibát, de tudom, hogy Mega-hoz vannak könyvtárak telepítve, azokat kellene törölni.By cool !
-
sad_Vamp
őstag
Sziasztok!
Arduino UNO (ch34s - vezérlős kínai copy) -val szeretnék vezérelni 37drb Ledet a ws2812b led stripből.
A terv az lenne hogy 1 (esetleg 2 nyomógomb) segítségével körbe váltogatni:1. szín (piros)
2. szín (legyen pl lila)
3. szín (legyen pl narancs)
4. pulzáló piros
5. vlm féle mozgó színátmenet
6. LED kikapcsA probléma ott van, hogy nem értek a programozáshoz egyáltalán, az Arduino progiból alap sketcheket rá tudtam tölteni a gépre, meg olvastam hogy valami FASTLED könyvtárt érdemes nézegetni, de azon már totál nem igazodtam el. Mivel az arduino sketch file az 1 darab volt, ez meg egy csomó file...
Fontos dolog még a fogyasztás, szerintetek meddig működhet az ilyen 4 ceruza elemről? (valószínűleg nem is kéne full erőn világítani a ledeknek)
Lenne valaki hajlandó segíteni egy totál noob-nak? Ha nem esetleg tudtok ajánlani vlmi útmutatót "for absolute dummies" ez ügyben?
“When the flaws of the system are exposed, it is usually the irritant who gets cast out.”
-
szuszinho
őstag
Sziasztok,
Készített már valaki SSR relét vezérlő PID-et?
-
Janos250
őstag
válasz sad_Vamp #9792 üzenetére
Na, ez nehéz lesz, mert ennek a szalagnak a vezérlése nem a legegyszerűbb feladat.
Könyv Arduinohoz persze van, de az még nem a LED szalag, viszont ha megtanulsz programozni, akkor utána már fel tudod tölteni tömbökbe amit ki akarsz vinni, miegymás.
Pár példa:
http://longfiles.com/3631nxmxkq9a/Arduino_for_Beginners_Step-by-Step_Guide_to_Arduino_(Arduino_Hardware_&_Software)_[Kindle_Edition].azw3.html
http://longfiles.com/2lspiyw9nsy0/Arduino_For_Dummies_(For_Dummies_(Computertech)).epub.html
http://longfiles.com/21sl2z8s86sq/Arduino_The_Essential_Step_by_Step_Guide_to_Begin_Your_Own_Projects_(DIY_Programming_Projects,_STEM).mobi.html
http://longfiles.com/yy4t5cy1ei7w/Arduino_Simple_and_Effective_Strategies_to_Learn_Arduino_Programming.azw3.htmlHa nem boldogulsz a fájl formátumával, akor "calibre" a bűvszó
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
sad_Vamp
őstag
válasz Janos250 #9794 üzenetére
Köszönöm a könyveket, belenézek mindenképp!
Viszont őszintén bevallva, nem akarok megtanulni komplett programozni, csak 1 LEDstrip miatt.... ha sima analóg RGB-ben létezne 144LED/m sűrűségű strip -tudtommal nincs- akkor nem is gondolkodnék az egészen.Nekem erre az 1 dologra lenne szükségem.... esetlegesen a színek változnának (meg az LEDek száma és elhelyezkedésre). Semmi mélyebbet nem szeretnék kihozni a dologból.
“When the flaws of the system are exposed, it is usually the irritant who gets cast out.”
-
Bazs87
tag
Sziasztok!
HW: sonoff basic R1
Cél: home assistant kompatibilis kapcsoló lehetőleg availability_topic lehetőségévelpróbálkoztam eddig ezekkel:
- tasmota ( úgy gyanítom nem kompatibilis, a listán csak az R2 szerepel)
- espeasy (az ap itt sem állt fel, valszeg ez sem kompatibilis)
- homie - szépen működik, de nem találok rendes példát rá - még ha egy egyszerű dologról is van szó (itt ugye a teljes alap funkcionalitást kellene megírni, továbbá valahogy az elérhetőség kérdését megoldani)a hw tesztelve, hibamentesen működik.
nincs esetleg vmi tippetek? -
Janos250
őstag
Itt jobban értenek hozzá:
https://prohardver.hu/tema/okos_otthon_smart_home/friss.htmlAz amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen