Hulp bij garagedeur openen

Projecten die niet passen in bovenstaande onderwerpen
Gebruikers-avatar
Berichten: 102
Geregistreerd: 26 Okt 2015, 16:07

Hulp bij garagedeur openen

Berichtdoor Atwist » 23 Jul 2018, 11:25

Mijn print van de garage deuropener is defect (30 jaar oud)
Dus ben ik maar begonnen met een nieuwe te maken met een Arduino UNO
Graag zou ik mijn oude afstandbediening weer willen gebruiken (1 Knops)
Nu loop ik tegen een probleem aan die ik niet onder de knie krijg, en wel het volgende:
Als ik het systeem op start dan moet de deur naar beneden gaan zodat deze in een beginstand komt te staan.
Nu zou het zo moeten zijn dat de deur (deurupPin) omhoog moet gaan als "doorisdownPin" high is en de "transmitterPin" is high en moet stopen als "doorisupPin" high word.
En als nu dus de deur naar beneden (deurdownPin) moet "deurisupPin" is high en de "transmitterPin" is high en weer moet stopen als "doorisdownPin" high word, maar er is ook nog een knelbeveiliging (safetytubePin) als deze high word moet de deur direct omhoog gaan.
Dit zijn voor mij te veel parameters die ik niet logisch kan afhandelen in mijn script.

Ik hoop dat jullie mij hiermee kunnen helpen.

Code: Alles selecteren
#include "Timer.h"
#include "Bounce2.h"

const int doorisdownPin = D2;      // Active if door is down.
const int doorisupPin = D3;        // Active if door is up.
const int safetytubePin = D4;      // Active if safetytube is pusht.
const int doorupPin = D5;          // Door goes up.
const int doordownPin = D6;        // Door goes down.
const int lightPin =  D7;          // Output for light.
const int buttonPin = D8;          // Input for button.
const int transmitterPin = D9;     // Input for transmitter.


int doorisdownPinState = 0;       
int doorisupPinState = 0;         
int safetytubePinState = 0;       
int buttonPinState = 0;           
int transmitterPinState = 0; 

int pushed = 0;   

Timer t;
Bounce debouncer = Bounce();


//*******************************************************************************
void setup() {
  Serial.begin (115200);
  pinMode(doorisdownPin, INPUT);
  pinMode(doorisupPin, INPUT);
  pinMode(safetytubePin,  INPUT);
  pinMode(buttonPin, INPUT_PULLUP);
  pinMode(transmitterPin, INPUT_PULLUP);
  pinMode(doorupPin, OUTPUT);
  pinMode(doordownPin,  OUTPUT);
  pinMode(lightPin,  OUTPUT);

  debouncer.attach(buttonPin);            // Pin to debounce.
  debouncer.attach(transmitterPin);       // Pin to debounce.
  debouncer.attach(safetytubePin);        // Pin to debounce.
  debouncer.interval(50);                 // Debounce interval time in ms

  //doordown;                                 // If powerup then doordown.
  Serial.println("Programm start");
}
//*******************************************************************************
void loop() {
  debouncer.update();                     // Update the Bounce instance
  int value = debouncer.read();           // Get the updated value
 
  transmitterPinState = digitalRead(transmitterPin);      // Read the push button value

  if(transmitterPinState == HIGH && doorisupPinState == HIGH){

    pushed = 1-pushed;
    delay(100);
  }   

 
      if(pushed == HIGH){
        Serial.println("Door goes DOWN");
        //digitalWrite(doordownPin, HIGH);
        doordown;
       
      }     
}

//********************************************************************************
void doorup()
{ Serial.println(" doorup");
//  digitalWrite(doorupPin, HIGH);        // Door goes UP.
// ;
//  light;                                // Light ON.
// if (doorisupPin == HIGH);             // Door is UP.
//  {
//    digitalWrite(doorupPin, LOW);       // Poweroff "door up".
//    Serial.println("Door is UP");
//  }
}
//*******************************************************************************
void doordown()
{Serial.println("doordown");
//  digitalWrite(doordownPin, HIGH);      // Door goes DOWN.
// 
//  if (safetytubePin == HIGH);           // Safetytube is active.
//  Serial.println("Safetytube is active");
//  {
//    digitalWrite(doordownPin, LOW);     // Poweroff "door down".
//    digitalWrite(doorupPin, HIGH);      // Poweron " door up".
//  }
//  digitalRead(doorisdownPin == HIGH);   // Door is DOWN.
//  {
//    digitalWrite(doordownPin, LOW);     // Poweroff "door down".
//    Serial.println("Door is DOWN");
//  }
}
////*******************************************************************************
//void light()
//{
//t.pulse(lightPin, 12 * 10 * 1000, HIGH); // Light ON for 2 minutes
//t.update();                             // Reset timer
//  }
// 
////*******************************************************************************
////Program end
////*******************************************************************************
Ik ben niet de slimste maar doe wel mijn best.
Andreas

Advertisement

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Bing [Bot] en 1 gast