hulp met relais aansturen via touchscreen
19 berichten
• Pagina 1 van 2 • 1, 2
- dongolfcabrio
- Berichten: 46
- Geregistreerd: 07 Jan 2016, 23:29
- Woonplaats: arnhem city
hulp met relais aansturen via touchscreen
is er iemand die mij kan helpen met het aansturen van een relais met touchscreen
ik heb dit er al in staan alleen gaat mijn relais dan klapperen en geeft geen stabiel contact
ik gebruik een arduino uno
met 2,8 tft touch shield en een 4 kanaals relais board
dit is mijn script
php code
ik heb dit er al in staan alleen gaat mijn relais dan klapperen en geeft geen stabiel contact
ik gebruik een arduino uno
met 2,8 tft touch shield en een 4 kanaals relais board
dit is mijn script
php code
#include <Adafruit_GFX.h>
#include <Adafruit_TFTLCD.h>
#include <TouchScreen.h>
#define YP A1
#define XM A2
#define YM 7
#define XP 6
#define MINPRESSURE 1
#define MAXPRESSURE 1000
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 364);
short TS_MINX = 150;
short TS_MINY = 120;
short TS_MAXX = 850;
short TS_MAXY = 891;
#define LCD_CS A3
#define LCD_CD A2
#define LCD_WR A1
#define LCD_RD A0
#define LCD_RESET A4
#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);
int X;
int Y;
int Z;
int a = 0;
#define BOXSIZE 110
#define PENRADIUS 3
int oldcolor, currentcolor;
#define open 10
void setup(void)
{
tft.begin(0x9341);
pinMode(10, OUTPUT);
tft.fillScreen(BLACK);//BG COLOR
}
void loop()
{
lecturaPanel(); // Realizamos lectura del panel para detectar presion y coordenadas
// Si la pulsación del eje X se produce entre los puntos 40 y 160
// Y la pulsacion del eje Y se produce entre los puntos 20 y 60
// Y la presión realizada esta entre el margen determinado
if((X > 20 && X < 400) && (Y > 20 && Y < 60) && (Z > MINPRESSURE && Z < MAXPRESSURE))
{
digitalWrite(open, LOW);
digitalWrite(open, HIGH);
}
}
void lecturaPanel()
{
TSPoint p = ts.getPoint(); // Realizamos lectura de las coordenadas
pinMode(XM, OUTPUT); // La librería utiliza estos pines como entrada y salida
pinMode(YP, OUTPUT); // por lo que es necesario declararlos como salida justo
// despues de realizar una lectura de coordenadas.
// Mapeamos los valores analogicos leidos del panel tactil (0-1023)
// y los convertimos en valor correspondiente a la medida del LCD 320x240
X = map(p.x, TS_MAXX, TS_MINX, tft.width(), 0);
Y = map(p.y, TS_MAXY, TS_MINY, tft.height(), 0);
Z = p.z;
}
Advertisement
- dongolfcabrio
- Berichten: 46
- Geregistreerd: 07 Jan 2016, 23:29
- Woonplaats: arnhem city
Re: hulp met relais aansturen via touchscreen
Zou ik dit met mosfet 3-5v naar 12v high voltage kunnen goedmaken zou dit dan wel stabiel werken
Re: hulp met relais aansturen via touchscreen
ja tuurlijk klappert het relais op pin 10 want jij stuurt het laag en gelijk weer hoog.
daar moet een tijddelay aan vast zitten en een else tussen.
daar moet een tijddelay aan vast zitten en een else tussen.
paul deelen
shooter@home.nl
shooter@home.nl
- dongolfcabrio
- Berichten: 46
- Geregistreerd: 07 Jan 2016, 23:29
- Woonplaats: arnhem city
Re: hulp met relais aansturen via touchscreen
ok hoe kan ik hem dan laten werken als ik hem ingedrukt houdt op de touch dat hij dan aan blijft en zodra ik los laat dat hij weer terug valt
Re: hulp met relais aansturen via touchscreen
if((X > 20 && X < 400) && (Y > 20 && Y < 60) && (Z > MINPRESSURE && Z < MAXPRESSURE))
{
digitalWrite(open, LOW);}
else{
digitalWrite(open, HIGH);
}
{
digitalWrite(open, LOW);}
else{
digitalWrite(open, HIGH);
}
paul deelen
shooter@home.nl
shooter@home.nl
- dongolfcabrio
- Berichten: 46
- Geregistreerd: 07 Jan 2016, 23:29
- Woonplaats: arnhem city
Re: hulp met relais aansturen via touchscreen
hoi allen ik heb nu inmiddels het 3,2 inch scherm met touch en de bij behorende shield voor op de mega
hier heb ik hetzelfde probleem
ik wil dat als ik but1 in gedrukt houd dat er een digitale poort schakelt zodra ik de but1 los laat dat de poort weer sluit
er komt een relay aan die gaat schakelen
dit is de code die ik nu heb
php code
hier heb ik hetzelfde probleem
ik wil dat als ik but1 in gedrukt houd dat er een digitale poort schakelt zodra ik de but1 los laat dat de poort weer sluit
er komt een relay aan die gaat schakelen
dit is de code die ik nu heb
php code
#include <UTFT.h>
#include <UTouch.h>
#include <UTFT_Buttons.h>
//#include <UTFT_tinyFAT.h>
//#include <tinyFAT.h>
extern uint8_t SmallFont[];
extern uint8_t BigFont[];
const int ledPin = 13;
const int ledPin1 = 12;
// Remember to change the model parameter to suit your display module!
UTFT myGLCD(ITDB32S,38,39,40,41);
UTouch myTouch( 6, 5, 4, 3, 2);
UTFT_Buttons myButtons(&myGLCD, &myTouch);
void setup()
{
myGLCD.InitLCD();
myGLCD.clrScr();
myGLCD.setFont(SmallFont);
pinMode(ledPin, OUTPUT);
pinMode(ledPin1, OUTPUT);
myTouch.InitTouch();
myTouch.setPrecision(PREC_HI);
}
void loop()
{
int but1, but2, but3, but4, but5, but6, but7, but8, but9, but10, but11, but12, butX, butY, pressed_button, x, y;
int Status1 = 0, Status2 = 0, Status3 = 0, Status4 = 0, Status5 = 0, Status6 = 0, Status7 = 0, Status8 = 0, Status9 = 0, Status10 = 0; // <== ! You had not initialised these
// Menu
myButtons.setTextFont(SmallFont);
myButtons.setButtonColors(VGA_BLACK, VGA_GRAY, VGA_WHITE, VGA_RED, VGA_WHITE);
but1 = myButtons.addButton(10, 10, 80, 70, "Relay 1");
but2 = myButtons.addButton(110, 10, 80, 70, "Relay 2");
myButtons.drawButtons();
while (true)
{
if (myTouch.dataAvailable())
{
pressed_button = myButtons.checkButtons();
if ((pressed_button==but1) && (Status1 == 0 ))
{
myButtons.drawButton(but1);
Status1 = 1;
digitalWrite(ledPin, HIGH);}
else{
digitalWrite(ledPin, LOW);
}
}}}
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: hulp met relais aansturen via touchscreen
a) Wanneer wordt status1 op 0 gezet?
b) Daarnaast vraag ik mij af waarom je die drawButton functie uitvoerd?
c) en ik zou al die variabelen die je in de loop hebt of static maken of buiten de functies zetten. Alle variabelen die in een functie zitten worden gewist bij het einde van de functie. Dus status is 0 bij het begin van de functie. Ook al zou hij tussentijds 1 worden.
d) ik heb even in die library gekeken en als ik het goed begrijp geeft hij alleen button nummer terug als deze is ingedrukt en -1 als deze niet is ingedrukt. Dus de redenering klopt niet. Dan zou je moet testen dat als de status = 1 en je krijgt een -1 terug dan is hij weer losgelaten en moet je de status weer 0 maken. NA die test hoef je alleen maar afhankelijk de status de led aan of uit te zetten. Of (wel heel onduidelijk) zo doen:
cpp code
b) Daarnaast vraag ik mij af waarom je die drawButton functie uitvoerd?
c) en ik zou al die variabelen die je in de loop hebt of static maken of buiten de functies zetten. Alle variabelen die in een functie zitten worden gewist bij het einde van de functie. Dus status is 0 bij het begin van de functie. Ook al zou hij tussentijds 1 worden.
d) ik heb even in die library gekeken en als ik het goed begrijp geeft hij alleen button nummer terug als deze is ingedrukt en -1 als deze niet is ingedrukt. Dus de redenering klopt niet. Dan zou je moet testen dat als de status = 1 en je krijgt een -1 terug dan is hij weer losgelaten en moet je de status weer 0 maken. NA die test hoef je alleen maar afhankelijk de status de led aan of uit te zetten. Of (wel heel onduidelijk) zo doen:
cpp code
digitalWrite(ledPin,status0);
Re: hulp met relais aansturen via touchscreen
je doet nog steeds hetzelfde je output is maar een cyclus hoog, want de status =1 dus else is gelijk aktief.
paul deelen
shooter@home.nl
shooter@home.nl
- dongolfcabrio
- Berichten: 46
- Geregistreerd: 07 Jan 2016, 23:29
- Woonplaats: arnhem city
Re: hulp met relais aansturen via touchscreen
hoi bedankt voor jullie reacties wat zet ik hier tussen om hem op pin high te houden en als ik los laat dan pin low
php code
php code
if ((pressed_button==but1))
{
digitalWrite(ledPin, HIGH);
myButtons.drawButton(but1);
digitalWrite(ledPin, LOW);
myButtons.drawButton(but1);
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: hulp met relais aansturen via touchscreen
Waarom moet je eigenlijk elke keer die drawButton doen eigenlijk?
19 berichten
• Pagina 1 van 2 • 1, 2
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 44 gasten