|
A klónok CH340 Soros-USB illesztőjének drivere ( Letöltés)
Stabilan nyomom, nincs prell.
Probáldmeg igy:
int inPin = 2; // the number of the input pin
int nulla = 3;
int outPin = 13; // the number of the output pin
int szam = 0;
int state = HIGH; // the current state of the output pin
int reading; // the current reading from the input pin
int previous = LOW; // the previous reading from the input pin
int nullazo;
int szam1 = 0;
// the follow variables are long's because the time, measured in miliseconds,
// will quickly become a bigger number than can be stored in an int.
long time = 0; // the last time the output pin was toggled
long debounce = 500; // the debounce time, increase if the output flickers
void setup()
{
Serial.begin(9600);
pinMode(inPin, INPUT_PULLUP);
pinMode(nulla, INPUT_PULLUP);
pinMode(outPin, OUTPUT);
}
void loop()
{
reading = digitalRead(inPin);
nullazo = digitalRead(nulla);
// if the input just went from LOW and HIGH and we've waited long enough
// to ignore any noise on the circuit, toggle the output pin and remember
// the time
if (reading == HIGH && (millis() - time) > debounce) {
if(previous == LOW){
szam++;
szam1++;
if (state == HIGH)
state = LOW;
else
state = HIGH;
previous = HIGH; // meg akadályozza az ismétlödést
time = millis(); // Prel kivárás késleltetés
}else {
if (reading == LOW) previous = LOW; // Ha elengedte a gombot? Engedélyezzi a következöt
}
}
if (nullazo == LOW) {
szam = 0;
szam1 = 0;
Serial.println(szam);
Serial.println(szam1);
}
if (szam1 == 5) {
Serial.println(szam);
Serial.println(szam1);
szam1 = 0;
}
digitalWrite(outPin, state);
}
Hello!
Így nem ír semmit soros portra.
A prell-t a nyomógomb mechanikája is okozhatja, mindegy hogy stabilan nyomod el.
De nem kötekedni akarok, próbált meg, tegyél be delay-t a két vizsgálat közé.
Elvileg a debounce prell kiküszöbölésére hivatott. Vagy nem tudom, nem vagyok jártas benne annyira.
Van benne debounce = 500
if (reading == HIGH && (millis() - time) > debounce)
5. gombnyomásra, kellene írnia!?
Igen, azt szeretném, így nincs "leterhelve" a soros kommunikáció.
char addr[] = "\"+000000000\"";
char msg[] = "Hello World!";
//tl;dr
SIM.smsSend(addr, msg);
Csak egy "educated guess", mert nem ismerem se a lib-et, se a modult, de ez elég beszédesnek tűnik. Szóval szerintem az addr tömb a telefonszám amire küldi, a msg pedig az SMS szövege. A hozzászólás módosítva: Júl 16, 2017
Az addig renden van. Ott akadtam el, hogy HX711 lib-je által visszaadott változót akarom elküldni sms-ben.
Magyarul mérek egyet, a számot elküldöm SMS-ben.
String-et tudsz float-ből csinálni, arduino doksi példával.
És ha az sms lib-et nem eszi meg a string-et, akkor string-ből tudsz karaktertömböt csinálni, arduino doksi.
Nyilván nem a leghatékonyabb, de úgy látom most nem a hatékonyság a cél.
És ha meg van a karakter tömb, akkor hogy néz ki ez a sor ?:
char msg[] = "Hello World!";
Szerintem kb így:
float akarmi = 34489.92436
char msg[10];
String tmp = String(akarmi, 2);
tmp.toCharArray(msg[], 5);
Nyilván hogy mi milyen hosszú, hány tizedes és ilyesmi azt te tudod.
(Ez most fejből ment, de ha valahol hibás akkor kb. 3 perc guglizással tutira találsz működő példakódot.)
tmp.toCharArray(msg[], 5);
Erre hibát dob sajnos.
" 'tmp' does not name a type "
Készítettem egy olyan játékot amelyben egy léptetőmotort és egy 1602 LCD kijelzőt működtet egy Mega. A motor ULN2003-as IC-ről megy. A probléma csupán annyi, hogy mikor megy (és csak akkor) a motor a kijelző fénye elhalványul és villódzik. Mit kellene tenni, hogy normálisan működjön a kijelző.
Külső 9 V-os tápfeszültséget használok.
Talán egy terhelhetőbb tápfeszültség kellene mert visszaeshet feszültsége amikor a motor megy.
Sziasztok!
Ebay-ről rendeltem egy ilyen kijelzőt az Arduino MEGA2560-hoz, de akármilyen könyvtárat (ILI/ST) egyikkel sem hajlandó működni, csak fehéren világít a háttérvilágítás. Próbáltam korábbi verziójú progival is, de azzal sem akar működni.
Van esetleg valakinek valami ötlete?
A 9V tápfesz az ugye nem egy 9V-os elem?
De ha mégis, akkor gyorsan keress más megoldást, az nem elég erős léptetőmotor működtetéséhez...
Nekem ugyanez valami SPFD5408 könyvtárral megy, bár az érintőképernyőt még nem próbáltam...
sajnos nem működik vele
Pedig ez kinézetre totál ugyanaz mint ami nekem van...
Nem lehet, hogy a lábakat kellene átkonfigurálnod, vagy átvezetékezned?
Nekem egy UNO -ba bedugva ez a program megy...
// IMPORTANT: Adafruit_TFTLCD LIBRARY MUST BE SPECIFICALLY
// CONFIGURED FOR EITHER THE TFT SHIELD OR THE BREAKOUT BOARD.
// SEE RELEVANT COMMENTS IN Adafruit_TFTLCD.h FOR SETUP.
// Modified for SPFD5408 Library by Joao Lopes
// Version 0.9.2 - Rotation for Mega and screen initial
// *** SPFD5408 change -- Begin
#include <SPFD5408_Adafruit_GFX.h> // Core graphics library
#include <SPFD5408_Adafruit_TFTLCD.h> // Hardware-specific library
#include <SPFD5408_TouchScreen.h>
// *** SPFD5408 change -- End
// The control pins for the LCD can be assigned to any digital or
// analog pins...but we'll use the analog pins as this allows us to
// double up the pins with the touch screen (see the TFT paint example).
//#define LCD_CS A3 // Chip Select goes to Analog 3
//#define LCD_RS 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
// When using the BREAKOUT BOARD only, use these 8 data lines to the LCD:
// For the Arduino Uno, Duemilanove, Diecimila, etc.:
// D0 connects to digital pin 8 (Notice these are
// D1 connects to digital pin 9 NOT in order!)
// D2 connects to digital pin 2
// D3 connects to digital pin 3
// D4 connects to digital pin 4
// D5 connects to digital pin 5
// D6 connects to digital pin 6
// D7 connects to digital pin 7
// For the Arduino Mega, use digital pins 22 through 29
// (on the 2-row header at the end of the board).
// Assign human-readable names to some common 16-bit color values:
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
//Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
Adafruit_TFTLCD tft(A3, A2, A1, A0, A4);
// If using the shield, all control and data lines are fixed, and
// a simpler declaration can optionally be used:
// Adafruit_TFTLCD tft;
void setup()
{
Serial.begin(9600);
tft.reset();
tft.begin(0x9341); // SDFP5408
tft.setRotation(3); // Need for the Mega, please changed for your choice or rotation initial
//Üdvözlőképernyő
stb...
A hozzászólás módosítva: Júl 17, 2017
ami a linkben van kép az se fedi a valóságot, mert nekem hiányzik egy alkatrész róla (csatolt kép).
//üdvözlőképernyő
//tft.fillScreen(BLACK); // háttér szín beállítása
tft.setCursor(0,50); // kurzor pozíció beállítása
tft.setTextColor(BLUE); // szöveg szín beállítása
tft.setTextSize(3); // szöveg méret beállítása: (1méret=53 oszlop 30 sor / 2méret=26 oszlop 15 sor / 3méret=17 oszlop 10 sor
// 4méret=13 oszlop 7 sor / 5méret=10 oszlop 6 sor / 6méret=8 oszlop 5 sor / 7méret=7 oszlop 4 sor / 8méret=6 oszlop 3 sor / 9 és 10méret=5 oszlop 3 sor)
//tft.println(" Sw.: Próba"); // szöveg kiíratása
tft.print("Sw.: SpotWelder");
Az egy 3.3V -os stabilizátor típusa: AMS1117-3.3, az enyémen rajta van.
Próbáld ki a programot amit mutattam, ki kellene írnia valamit.
Ha nem teszi, lásuk mit produkál, hátha az okosoknak támad valami ötlete...
Feltöltöttem, de ugyan úgy semmit nem csinál, a lábkiosztások stimmelnek.
Ez micsoda, mert nekem csak egy oldal jön be ahol meglehet venni a kijelzőt?
Elvileg ezt a sort nekem is mahinálnom kellett, lehet nálad is változtatni kellene az értékét.
De hogy hol vannak a választható értékek azt már nem tudom.
Talán valami példaprogrammal ki kell olvasni a kijelző ROM-jából, de nem esküszöm meg rá...
tft.begin(0x9341); // SDFP5408
|
|