Aanmaken van een merker
15 berichten
• Pagina 1 van 2 • 1, 2
Aanmaken van een merker
Beste,
Ben onlangs als mecanicien gestart met Arduino. Weet uit een vroeger leven dat er zoiets als een merker bij Siemens bestond. Je moest hiervoor
geen fysische uitgang gebruiken, dacht ik.
Heb al zitten zoeken , maar kan dit niet vinden;
Als voorbeeld graag 2 ingangen in een AND functie die een merker hoog zetten.
Daarna dezelfde merker in een AND functie met een ingang die een UITGANG hoog zetten.
Hopelijk is dit een beetje duidelijk
Alvast iemand bedankt voor mogelijke hulp
Ben onlangs als mecanicien gestart met Arduino. Weet uit een vroeger leven dat er zoiets als een merker bij Siemens bestond. Je moest hiervoor
geen fysische uitgang gebruiken, dacht ik.
Heb al zitten zoeken , maar kan dit niet vinden;
Als voorbeeld graag 2 ingangen in een AND functie die een merker hoog zetten.
Daarna dezelfde merker in een AND functie met een ingang die een UITGANG hoog zetten.
Hopelijk is dit een beetje duidelijk
Alvast iemand bedankt voor mogelijke hulp
Advertisement
- Gij Kieken
- Berichten: 631
- Geregistreerd: 15 Nov 2015, 11:54
Re: Aanmaken van een merker
In arduino wordt er niet gesproken over merkers.
Je kunt naar lieve lust zelf een variabele declareren en die verder gebruiken zoals je wilt.
Het is een andere denkwijze dan een plc of logo (bijvoorbeeld merker 8).
Je programma schrijf je in een sketch en daar kun je AND OR NAND of wat je maar wilt in kwijt.
Je kunt naar lieve lust zelf een variabele declareren en die verder gebruiken zoals je wilt.
Het is een andere denkwijze dan een plc of logo (bijvoorbeeld merker 8).
Je programma schrijf je in een sketch en daar kun je AND OR NAND of wat je maar wilt in kwijt.
Re: Aanmaken van een merker
Bedankt voor je snelle reactie. Kan je zoals eerder gevraagd een concreet voorbeeld opstellen aub.
vb input 1 en input2 geeft een variabele !!! Deze variable en ingang3 zetten uitgang5 hoog
Ik heb al verscheidene pogingen gedaan, zonder succes echter. Het gebruik van functies daarentegen lukt wel
vb input 1 en input2 geeft een variabele !!! Deze variable en ingang3 zetten uitgang5 hoog
Ik heb al verscheidene pogingen gedaan, zonder succes echter. Het gebruik van functies daarentegen lukt wel
Re: Aanmaken van een merker
Hoi Koepel,
De onderstaande sketch werkt natuurlijk niet. De bedoeling is om met 2 ingangen een merker hoog te zetten en geen echte uitgang te gebruiken . Daarna deze merker samen met een ingang gebruiken en een uitgang(vb een LED) hoog te zetten.
Kan je onderstaande sketch aanpassen aub
const int knop1=3;
const int knop2=7;
const int knop3=9;
int merker1=LOW;
int statusknop1 ;
int statusknop2;
int statusknop3;
int(statusmerker1);
int redLED=12;
int dt=500;
void setup() {
Serial.begin(9600);
pinMode(knop1,INPUT);
pinMode(knop2,INPUT);
pinMode(knop3,INPUT);
pinMode(merker1,OUTPUT);
}
void loop() {
statusknop1=digitalRead(knop1);
statusknop2=digitalRead(knop2);
statusknop3=digitalRead(knop3);
if (statusknop1==HIGH && statusknop2==HIGH) {
digitalWrite (statusmerker1,HIGH);
if (statusmerker1==HIGH && statusknop3==HIGH);
digitalWrite (redLED,HIGH)
De onderstaande sketch werkt natuurlijk niet. De bedoeling is om met 2 ingangen een merker hoog te zetten en geen echte uitgang te gebruiken . Daarna deze merker samen met een ingang gebruiken en een uitgang(vb een LED) hoog te zetten.
Kan je onderstaande sketch aanpassen aub
const int knop1=3;
const int knop2=7;
const int knop3=9;
int merker1=LOW;
int statusknop1 ;
int statusknop2;
int statusknop3;
int(statusmerker1);
int redLED=12;
int dt=500;
void setup() {
Serial.begin(9600);
pinMode(knop1,INPUT);
pinMode(knop2,INPUT);
pinMode(knop3,INPUT);
pinMode(merker1,OUTPUT);
}
void loop() {
statusknop1=digitalRead(knop1);
statusknop2=digitalRead(knop2);
statusknop3=digitalRead(knop3);
if (statusknop1==HIGH && statusknop2==HIGH) {
digitalWrite (statusmerker1,HIGH);
if (statusmerker1==HIGH && statusknop3==HIGH);
digitalWrite (redLED,HIGH)
Re: Aanmaken van een merker
Maar ik weet niet eens wat een merker is
Je kunt zoveel variabelen toevoegen als je wilt. Je kunt tijdelijke dingen in een variabele stoppen, of een lang if-statement maken.
Als ik jouw beschrijving lees, dan lees ik dat de led aan gaat als drie ingangen hoog zijn. Klopt dat ?
Maar hoe gaat de led dan uit ?
Hieronder staat een alternatieve manier voor jouw sketch.
cpp code
Je mag de conditie van een if-statement zo lang maken als je wilt. Dat is het deel tussen de '(' en ')' haakjes: if( conditie ) { doe iets; }
Soms is die conditie meerdere regels lang.
Bij jouw sketch zou je de 'merker' weg kunnen laten, en meteen een if-statement:
cpp code
Je kunt zoveel variabelen toevoegen als je wilt. Je kunt tijdelijke dingen in een variabele stoppen, of een lang if-statement maken.
Als ik jouw beschrijving lees, dan lees ik dat de led aan gaat als drie ingangen hoog zijn. Klopt dat ?
Maar hoe gaat de led dan uit ?
Hieronder staat een alternatieve manier voor jouw sketch.
cpp code
// Pin nummers
const int knop1Pin = 3;
const int knop2Pin = 7;
const int knop3Pin = 9;
const int redLedPin = 12;
// Globale variabelen
int merker; // Combinatie van knop 1 en knop 2
int dt=500; // ?
void setup()
{
Serial.begin( 9600);
pinMode( knop1Pin, INPUT);
pinMode( knop2Pin, INPUT);
pinMode( knop3Pin, INPUT);
pinMode( redLedPin, OUTPUT);
}
void loop()
{
// Verzamel de knoppen in lokale (tijdelijke) variabelen
int statusknop1 = digitalRead( knop1Pin);
int statusknop2 = digitalRead( knop2Pin);
int statusknop3 = digitalRead( knop3Pin);
// Kijk of knop 1 en 2 hoog zijn, en maak dan de variabele 'merker' hoog.
if( statusknop1 == HIGH && statusknop2 == HIGH)
{
merker = HIGH;
}
else
{
merker = LOW;
}
// Knop 1 en 2 zijn gecombineerd in de variabele 'merker'.
// Als die hoog is, gaat de led aan als knop 3 hoog is.
// De led gaat nooit uit.
if( merker == HIGH && statusknop3 == HIGH)
{
digitalWrite( redLedPin, HIGH);
}
}
Je mag de conditie van een if-statement zo lang maken als je wilt. Dat is het deel tussen de '(' en ')' haakjes: if( conditie ) { doe iets; }
Soms is die conditie meerdere regels lang.
Bij jouw sketch zou je de 'merker' weg kunnen laten, en meteen een if-statement:
cpp code
// Verzamel de knoppen in lokale (tijdelijke) variabelen
int statusknop1 = digitalRead( knop1Pin);
int statusknop2 = digitalRead( knop2Pin);
int statusknop3 = digitalRead( knop3Pin);
// Alle knoppen hoog ? Dan led aan.
// De led gaat nooit uit.
if( statusknop1 == HIGH && statusknop2 == HIGH && statusknop3 == HIGH)
{
digitalWrite( redLedPin, HIGH);
}
Re: Aanmaken van een merker
Dag Koepel,
Is ogenschijnlijk heel eenvoudig voor mensen die goed op de hoogte zijn van Arduino.
Als ik het nu lees vind ik het zelfs eenvoudig. In elk geval heel hartelijk dank voor je hulp
Ben nu al een stuk verder.
Ik vermoed echter dat ik niet voldoende I/O ga hebben voor mijn toepassing (automatisatie van mijn plooibank). Ik heb gelezen dat de Arduino Mega meer I/O heeft
dan de Uno. Jij weet misschien of er een verschil qua programmeren is tussen beiden of
misschien nog andere verschillen. Nogmaals hartelijk dank voor je hulp
Is ogenschijnlijk heel eenvoudig voor mensen die goed op de hoogte zijn van Arduino.
Als ik het nu lees vind ik het zelfs eenvoudig. In elk geval heel hartelijk dank voor je hulp
Ben nu al een stuk verder.
Ik vermoed echter dat ik niet voldoende I/O ga hebben voor mijn toepassing (automatisatie van mijn plooibank). Ik heb gelezen dat de Arduino Mega meer I/O heeft
dan de Uno. Jij weet misschien of er een verschil qua programmeren is tussen beiden of
misschien nog andere verschillen. Nogmaals hartelijk dank voor je hulp
- Gij Kieken
- Berichten: 631
- Geregistreerd: 15 Nov 2015, 11:54
Re: Aanmaken van een merker
Tel hoeveel ingangen (bv knoppen , microswitchen, voetpedaal ,etc...) je nodig hebt.
Tel hoeveel uitgangen je nodig hebt (bv spoel hydraulische kleppen voor op en neer).
Dan weet je het aantal I/O.
Maak een flow chart van wat je wilt.
De Mega is op een soortgelijke manier te programmeren, er zit van alles een meer op( meer I/O, meer geheugen, meer interrupts,etc...).
Tel hoeveel uitgangen je nodig hebt (bv spoel hydraulische kleppen voor op en neer).
Dan weet je het aantal I/O.
Maak een flow chart van wat je wilt.
De Mega is op een soortgelijke manier te programmeren, er zit van alles een meer op( meer I/O, meer geheugen, meer interrupts,etc...).
Re: Aanmaken van een merker
Een merker komt inderdaad uit de PLC omgeving.
de ingangen kun je benoemen met pinnummers en eventueel namen.
in de setup geef je aan op welke pinnen ingangen zitten en waar uitgangen.
in de loop schrijf je dan bijvoorbeeld
in1 =digitalRead(2);
in2 = digitalRead(3);
uit1=(in1&&in2)
digitalWrite(13,uit1)
je mag ook een merker ertussen zetten
zoals int merker1=in3 || in4;
wel even kijken want dit is maar een voorbeeld.
als je de referentie erbij haalt dan snap je dit wel hoop ik.
de ingangen kun je benoemen met pinnummers en eventueel namen.
in de setup geef je aan op welke pinnen ingangen zitten en waar uitgangen.
in de loop schrijf je dan bijvoorbeeld
in1 =digitalRead(2);
in2 = digitalRead(3);
uit1=(in1&&in2)
digitalWrite(13,uit1)
je mag ook een merker ertussen zetten
zoals int merker1=in3 || in4;
wel even kijken want dit is maar een voorbeeld.
als je de referentie erbij haalt dan snap je dit wel hoop ik.
paul deelen
shooter@home.nl
shooter@home.nl
Re: Aanmaken van een merker
Dag Shooter,
Bedankt voor je uitleg. Na de uitleg van Koepel heb ik "een merker" getest in een sketch en het werkt.
Bedank aan iedereen voor de hulp. Voor mij kan dit onderwerp worden afgesloten.
groeten
jp
Bedankt voor je uitleg. Na de uitleg van Koepel heb ik "een merker" getest in een sketch en het werkt.
Bedank aan iedereen voor de hulp. Voor mij kan dit onderwerp worden afgesloten.
groeten
jp
15 berichten
• Pagina 1 van 2 • 1, 2
Wie is er online?
Gebruikers in dit forum: uyogabani en 46 gasten