jp's plooibank

Arduino specifieke Software
Berichten: 20
Geregistreerd: 15 Okt 2019, 20:00

Re: jp's plooibank

Berichtdoor jean-paul » 21 Dec 2019, 15:18

Hoi GK,

Ik kom later nog terug op jouw suggesties.

Mijn manuele modus werkt nog steeds zoals voorheen na de aanpassingen van jou.
Misschien doe ik iets fout en zie ik het niet. Ik heb nu een nieuwe sketch geschreven
en deze doet vermoedelijk hetzelfde als mij manuele modus.
Voor onderstaande sketch gebruik ik 2 drukknoppen.
1. dsKlemToe
2 resetdrukknop

Bij het uitlezen van de dsKlemToe zie ik dat deze "1" wordt bij het indrukken, maar bij het loslaten
terug "0". Als ik het goed begrijp zou de toestand bij het loslaten eveneens "1" moeten blijven !!

# define Pressure_On HIGH
# define Pressure_Off LOW

const int dsKlemToe = 24;
const int resetdrukknop = 26;
const int venKlemToe =28;


int dsKlemToeStat;
int resetdrukknopStat;
int venKlemToeStat;
bool merKlemToestand;


void setup() {

Serial.begin(9600);

pinMode (dsKlemToe,INPUT);
pinMode (resetdrukknop,INPUT);
pinMode (venKlemToe,OUTPUT);
}

void loop() {

dsKlemToeStat =digitalRead(dsKlemToe);
merKlemToestand =digitalRead(dsKlemToe);
venKlemToeStat =digitalRead(venKlemToe);

if(merKlemToestand) {
dsKlemToeStat=Pressure_On ;
}

if (dsKlemToeStat==HIGH)
{digitalWrite (venKlemToe,HIGH);}
else {digitalWrite (venKlemToe,LOW);}

if (resetdrukknopStat==HIGH){
dsKlemToeStat=Pressure_Off ;}


Serial.println(dsKlemToeStat);

}

Advertisement

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: jp's plooibank

Berichtdoor Gij Kieken » 21 Dec 2019, 17:48

Dat het niet meteen ging werken was te verwachten,er spelen een aantal factoren.
-Hoe en waar is de microswitch klem dicht geplaats?
-De Reset voorwaarden kloppen niet
-....

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: jp's plooibank

Berichtdoor Gij Kieken » 21 Dec 2019, 17:57

Als ik het wat samenvat is je vraag eigenlijk een Relais met Start en Stop en een Noodstop.(gelijk bv om een motor te starten stoppen)

-Wat zijn de drukknoppen die je gebruikt NO of NC
-De Noodstop zal wel NC zijn
-Ben je bekend met de termen Pull_UP & Pull_Down weerstanden ,INPUT_PULLUP?
-Van de hak op de tak ,gebruik je een veiligheids NoodStop relais bv Pilz PNOZ X3 (Schmersal Steute etc maken die ook)
-Gebruik je een twee handen module bv Pilz P2hz5
-

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: jp's plooibank

Berichtdoor Gij Kieken » 21 Dec 2019, 19:17

Een voorbeeldje voor bijvoorbeeld een motor te starten en stoppen met Noodstop functie.

Code: Alles selecteren
/*
   Voorbeeldje van Start Stop met Noodstop
   Noodstop NC,een kant aan pin2 de andere aan Gnd
   Startknop NO,een kant aan pin3 de andere aan Gnd
   Stopknop NC,een kant aan pin 4 de andere aan Gnd
   Relais(Led met serie weerstand 1K),een kant pin13 de andere aan Gnd
*/

//Constanten veranderen niet,hier bepalen we de Pin nummers
const byte noodstopPin = 2; //Pin 2 aan Noodstop
const byte startknopPin = 3;//Pin 3 aan Startknop
const byte stopknopPin = 4; //Pin 4 aan Stopknop
const byte relaisPin = 13;  //Pin 13 aan de relais(hier de ingebouwde LED)
//Variabelen veranderen wel
bool startStatus;           //Variabel om de start status te lezen
bool stopStatus;            //Variabel om de stop status te lezen
bool noodstopStatus;        //Variabel om de noodstop status te lezen
bool hulpContact;
//HIGH & LOW begrijpbaar maken
#define AAN HIGH
#define UIT LOW

void setup() {
  //Initialiseer de ingangspinnen
  pinMode(noodstopPin, INPUT_PULLUP); //Om zwevende ingangen te voorkomen
  pinMode(startknopPin, INPUT_PULLUP);//Om zwevende ingangen te voorkomen
  pinMode(stopknopPin, INPUT_PULLUP); //Om zwevende ingangen te voorkomen
  //Initialiseer de uitgangen
  pinMode(relaisPin, OUTPUT);
}

void loop() {
  noodstopStatus = digitalRead(noodstopPin); //Lees de status van de noodstop
  startStatus = digitalRead(startknopPin);  //Lees de status van de startknop
  stopStatus = digitalRead(stopknopPin);    //Lees de status vna de stopknop

  if (!startStatus) {//Is de startknop ingedrukt?(! want we schakelen naar Gnd)
    hulpContact = AAN;      //SET hulpcontact
  }
  //De noodstop ontgrendelt & niet op stop gedrukt & wel start gedrukt
  if ((!noodstopStatus) && (!stopStatus) && (hulpContact)) {
    digitalWrite(relaisPin, AAN);//Schakel de relais (LED) aan
  } else {
    hulpContact = UIT;//RESET hulpcontact
    digitalWrite(relaisPin, UIT);//In alle andere gevallen relais uit
  }
}

Berichten: 20
Geregistreerd: 15 Okt 2019, 20:00

Re: jp's plooibank

Berichtdoor jean-paul » 21 Dec 2019, 21:19

Hoi GK,

Alle drukknoppen en alle microswitchen zijn NO. Ook de dsKlemToe (drukschakelaar is een NO)
Er is geen microswitch voor KlemToe enkel de drukschakelaar.
De noodstop en resetknop sturen rechtstreeks de relays in de vermogenkring aan. Een noodstop
mag normaal niet softwarematig werken. Enkel de het lampje van de resetknop gaat via de Arduino. Ik gebruik geen Pnoz als nooduit nog een of andere startpult. Dit alles werkt prima.
Ik bedrijp niet waarom je plots deze dingen vraagt.
Alle ingangen hangen via een weerstand aan de GND (pull-down)

Mijn vraag :

Er wordt een drukschakelaar (NO) gedrukt die gaat togglen (in rust NO,dan NG,NO,NG, ...enz)
Hoe kan ik deze eerste toestandsverandering van deze drukschakelaar (SET) van NO naar NG (HOOG) vast houden en deze verder niet meer bekijken tot op het ogenblik dat een andere microswitch op het einde van het programma van NO naar NG (RESETTEN) gaat.

Het kom basic hier op neer. Ik heb 2 drukknoppen (NO) en een led. Bij het indrukken van drukknop 1 (opgaande flank, setten) ) gaat de Led oplichten. Ongeacht hoe dikwijls ik ook op deze drukknop 1 druk of niet druk, mijn led blijft oplichten. Enkel bij het drukken van drukknop 2 gaat de led uiteindelijk doven (resetten).

Berichten: 20
Geregistreerd: 15 Okt 2019, 20:00

Re: jp's plooibank

Berichtdoor jean-paul » 21 Dec 2019, 21:26

Hoi Gk,

De resetdrukknop in mijn sketch is eigenlijk ongelukkig gekozen. Deze heeft niets met de resetknop
van de nooduit te maken maar was bedoelt om de merKlemToestand terug laag te zetten (resetten)
Alle gegevens die jij mij ter beschikking hebt gesteld, bool, merkKlemToestand,... had ik in
een korte sketch gezet om het een beetje overzichtelijk te maken.
Waarom werkt deze niet ?

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: jp's plooibank

Berichtdoor Gij Kieken » 21 Dec 2019, 21:33

Het antwoord op je vraag is eigenlijk al gegeven in het voorbeeldje met start en stop.
Zodra ik wat tijd vind zal het wat aanpassen.
Maar als je het goed bestudeerd zou je het al zelf kunnen.
Doe eens de moeite om het voorbeeldje te testen en maak wat bedenkingen, probeer het aan te passen naar je behoeften.
Mijn vragen over de veiligheidsrelais was eigenlijk een steekproef,inderdaad zoiets mag in de industrie niet gebruikt worden.
Het moet minimaal een controller zijn met twee processors redundant etc...

Berichten: 20
Geregistreerd: 15 Okt 2019, 20:00

Re: jp's plooibank

Berichtdoor jean-paul » 21 Dec 2019, 21:41

Hoi GK,

Bedankt. Zal het eens bestuderen.
In elk geval moest ik je niet meer contacteren " fijne feestdagen"

groeten
jp

Berichten: 20
Geregistreerd: 15 Okt 2019, 20:00

Re: jp's plooibank

Berichtdoor jean-paul » 21 Dec 2019, 21:47

Hoi GK,

Nog snel een vraagje . Met hulpcontact wordt waarschijnlijk een "overneemcontact" bedoeld.
Contact dat de relais op spanning houd nadat je de startknop heb los gelaten.
Het begint al te dagen

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: jp's plooibank

Berichtdoor Gij Kieken » 21 Dec 2019, 22:13

Ja met hulpcontact bedoel ik een overname contact (Merker) ,je kunt het een beetje vergelijken met ladder is S5 of Logo enz.
Het was de bedoeling een beetje een beeld te scheppen van een standaard start stop.
Ik heb verzeker nog een S5 met wat modules liggen weet niet meer van buiten welke cpu 100?(werd dat zo niet uitgedrukt)
En alvast prettige feestdagen ook.


Code: Alles selecteren
/*
   Voorbeeldje van Start Stop met 2xNO contacten met Arduino Uno,Nano,Mega
   Voor alle knoppen wordt gebruik gemaakt van externe Pull_down weerstanden
   Startknop NO,een kant aan pin3 de andere aan +5Volt
   Stopknop NO,een kant aan pin 4 de andere aan +5Volt
   Relais(Led met serie weerstand 1K),een kant pin13 de andere aan Gnd
   De start knop kan bv een drukschakelaar zijn
   De stop knop kan bv een microswitch zijn
   De relais kan het ventiel weergeven(wel letten op het vermogen)
*/

//Constanten veranderen niet,hier bepalen we de Pin nummers
const byte startknopPin = 2;//Pin 2 aan Startknop
const byte stopknopPin = 3; //Pin 3 aan Stopknop
const byte relaisPin = 13;  //Pin 13 aan de relais(hier de ingebouwde LED)
//Variabelen veranderen wel
bool startStatus;           //Variabel om de start status te lezen
bool stopStatus;            //Variabel om de stop status te lezen
bool hulpContact;
//HIGH & LOW begrijpbaar maken
#define AAN HIGH
#define UIT LOW

void setup() {
  //Initialiseer de ingangspinnen (eigenlijk niet nodig want standaard zijn ze ingang)
  pinMode(startknopPin, INPUT);//Om zwevende ingangen te voorkomen Pull_down
  pinMode(stopknopPin, INPUT); //Om zwevende ingangen te voorkomen Pull_down
  //Initialiseer de uitgangen
  pinMode(relaisPin, OUTPUT);
}

void loop() {
  startStatus = digitalRead(startknopPin);  //Lees de status van de startknop
  stopStatus = digitalRead(stopknopPin);    //Lees de status van de stopknop

  if (startStatus) {    //Is de startknop ingedrukt?
    hulpContact = AAN;  //SET hulpcontact
  }
  //Niet op stop gedrukt & wel start gedrukt
  if ((!stopStatus) && (hulpContact)) {
    digitalWrite(relaisPin, AAN);//Schakel de relais (LED) aan
  } else {
    hulpContact = UIT;//RESET hulpcontact
    digitalWrite(relaisPin, UIT);//In alle andere gevallen relais uit
  }
}

VorigeVolgende

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 13 gasten