🍪 Privacy & Transparency

We and our partners use cookies to Store and/or access information on a device. We and our partners use data for Personalised ads and content, ad and content measurement, audience insights and product development. An example of data being processed may be a unique identifier stored in a cookie. Some of our partners may process your data as a part of their legitimate business interest without asking for consent. To view the purposes they believe they have legitimate interest for, or to object to this data processing use the vendor list link below. The consent submitted will only be used for data processing originating from this website. If you would like to change your settings or withdraw consent at any time, the link to do so is in our privacy policy accessible from our home page..

Vendor List | Privacy Policy
Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry PI

Menu
  • Projekte
    • LED’s
    • Servo & Schrittmotoren
    • Sound
    • LCD’s
    • Kommunikation
    • Sicherheit
    • Weekend Project
  • Arduino
    • Tutorials
    • ProMini
      • Anschließen & Programmieren
    • Nano
      • Arduino Nano – Übersicht
    • UNO
      • Übersicht
    • MEGA 2560
      • Übersicht
    • Leonardo
      • Übersicht
    • NodeMCU
      • NodeMCU – “Einer für (fast) Alles!”
    • Lilypad
      • Arduino: Lilypad “Jetzt Geht’s Rund!”
    • WEMOS
      • WEMOS D1 – Arduino UNO kompatibles Board mit ESP8266 Chip
      • WEMOS D1 Mini – Übersicht
      • Wemos D1 mini Shields
    • STM32x
      • STM32F103C8T6 – Übersicht
    • Maker UNO
      • Maker UNO – Überblick und Test
    • ATTiny85
      • Mini Arduino mit ATTiny85 Chip
      • ATtiny85 mit dem Arduino UNO beschreiben
  • Android
  • Über mich
  • DeutschDeutsch
  • EnglishEnglish
Menu

Arduino Uno Projekt zwei kapazitive Touch Sensoren und Relaisshield schalten

Posted on 1. März 202130. April 2023 by Stefan Draeger

In diesem Beitrag möchte ich dir zeigen wie du mit zwei kapazitiven Touch Sensoren ein Relaisshield steuern kannst.

Schaltung - Arduino UNO mit Relaisshield, Touch Sensor & LED
Schaltung – Arduino UNO mit Relaisshield, Touch Sensor & LED

  • Ziel
  • Hintergrund zu diesem kleinen Projekt
  • benötigte Bauteile für dieses Projekt
  • Aufbau & Anschluss
  • Programmieren
    • Schritt 1 – definieren der Pins
    • Schritt 2 – definieren welche Pins als Ein / Ausgang dienen sollen
    • Schritt 3 – lesen der Zustände der kapazitiven Touch Sensoren
    • Schritt 4 – aktivieren / deaktivieren der Relais
    • Schritt 5 – starten / stoppen eines „Timers“ für ein Relais
    • der fertige Code

Ziel

Das Ziel dieses Projektes ist es mit einem Touch Sensor ein Relais zu schalten welches „selbständig“ nach 5 Sekunden abfällt und der andere Touch Sensor ein Relais schalten kann.

Hintergrund zu diesem kleinen Projekt

Die Idee zu diesem Projekt kam über ein Kommentar zum Beitrag Arduino Projekt: Relaiskarte mit Reedkontakten steuern. 

Solltest du auch Ideen haben oder Hilfe benötigen, dann kommentiere einfach den entsprechenden Beitrag oder schreibe mir per E-Mail oder über das Kontaktformular.

benötigte Bauteile für dieses Projekt

Für den Nachbau dieses Projektes benötigst du folgende Bauteile:

  • einen Arduino UNO*,
    • ein USB Datenkabel
  • zwei kapazitive Touch Sensoren,
  • min. ein zweifach Relaisshield
  • diverse Breadboardkabel,
  • ein 170 / 400 Pin Breadboard

* Du kannst natürlich auch jeden anderen Microcontroller der Arduino Familie nutzen. Du benötigst lediglich 4 digitale Pins sowie GND und 5V somit kannst du auch den etwas günstigeren Arduino Nano verwenden. 

Zusätzlich verbaue ich noch eine grüne, 5mm LED (mit dazugehörigem 220 Ohm Widerstand)

Aufbau & Anschluss

BauteilArduino UNO
LED 
Anodedigitaler Pin D5
KathodeGND
kapazitiver Touch Sensor I 
GNDGND
I/Odigitaler Pin D9
VCC5V
kapazitiver Touch Sensor II 
GNDGND
I/Odigitaler Pin D8
VCC5V
zweifach Relaisshield 
VCC5V
IN1digitaler Pin D7
IN2digitaler Pin D6
GNDGND
Aufbau der Schaltung "Arduino UNO mit Touch Sensor und Relaisshield"
Aufbau der Schaltung „Arduino UNO mit Touch Sensor und Relaisshield“

Programmieren

Für das Programmieren des Sketches verwende ich die Arduino IDE. Du benötigst für das Programm keine zusätzlichen Bibliotheken!

Schritt 1 – definieren der Pins

Zunächst definieren wir an welche Pins wir die Sensoren / Aktoren angeschlossen haben. Ich verwende hier die Schreibweise mit „#define“ natürlich kannst du auch mit „int sensor = 5;“ arbeiten, das Ergebnis ist jeweils das gleiche. Der Vorteil mit „#define“ ist das weniger Speicherplatz belegt  / reserviert wird.

#define led 5

#define relais1 6
#define relais2 7

#define touch1 8
#define touch2 9

Schritt 2 – definieren welche Pins als Ein / Ausgang dienen sollen

Nachdem wir definiert haben an welche Pins die Sensoren / Aktoren angeschlossen sind müssen wir noch definieren ob diese als Eingang (für die Touch Sensoren) oder als Ausgang (LED & Relaisshield) agieren sollen.

void setup() {
  pinMode(led, OUTPUT);
  
  pinMode(relais1, OUTPUT);
  pinMode(relais2, OUTPUT);
  
  pinMode(touch1, INPUT);
  pinMode(touch2, INPUT);
}

Zusätzlich wird in der Funktion „setup“ noch die Relais initial deaktiviert.

digitalWrite(relais1, HIGH);
digitalWrite(relais2, HIGH);

Schritt 3 – lesen der Zustände der kapazitiven Touch Sensoren

Mit der Funktion „digitalRead“ können wir lesen ob der Touch Sensor berührt wurde. die Funktion liefert uns ein HIGH / 1 zurück wenn dieser berührt wurde, ansonsten LOW oder 0.

void loop() {
  if(digitalRead(touch1)==HIGH){}
  
  if(digitalRead(touch2)==HIGH){}
}

Schritt 4 – aktivieren / deaktivieren der Relais

In die zuvor geschriebenen If-Bedingungen schreiben wir nun welche Aktion stattfinden soll. 

Wenn der Touch Sensor 1 betätigt wird soll das Relais1 sowie die LED aktiviert werden.
Wenn der Touch Sensor 2 betätigt wird soll das Relais2 aktiviert bzw. deaktiviert werden.

int relais2Status = 0;

void loop() {
  if(digitalRead(touch1)==HIGH){
    digitalWrite(relais1, LOW);
    digitalWrite(led, HIGH);
  }
  
  if(digitalRead(touch2)==HIGH){
    relais2Status = relais2Status==0?1:0;
    digitalWrite(relais2, relais2Status);
  }
}

Schritt 5 – starten / stoppen eines „Timers“ für ein Relais

Im letzten Schritt programmieren wir eine Funktion welche prüft ob eine Zeitspanne überschritten wurde um dann die LED sowie das Relais zu deaktivieren.

Wir benötigen dazu eine Konstante welche den Wert für den Abstand zwischen zwei Zeiten festlegt sowie eine Variable zum speichern des letzten Zeitstempels.

const int PAUSE = 5000;
int lastMillis = 0;

void setup(){
   doTimer();
   lastMillis = millis();
   ...
}

void doTimer(){
  int currentMillis = millis();
  if((currentMillis - PAUSE) > lastMillis){
    lastMillis = currentMillis;
    digitalWrite(relais1, HIGH);
    digitalWrite(led, LOW);
  }  
}

der fertige Code

#define led 5

#define relais1 6
#define relais2 7

#define touch1 8
#define touch2 9

int relais2Status = 0;
const int PAUSE = 5000;
int lastMillis = 0;

void setup() {
  pinMode(led, OUTPUT);
  
  pinMode(relais1, OUTPUT);
  pinMode(relais2, OUTPUT);
  
  pinMode(touch1, INPUT);
  pinMode(touch2, INPUT);

  digitalWrite(relais1, HIGH);
  digitalWrite(led, LOW);
  
  digitalWrite(relais2, LOW);

  lastMillis = millis();
}

void loop() {
  doTimer();
  
  if(digitalRead(touch1)==HIGH){
    digitalWrite(relais1, LOW);
    digitalWrite(led, HIGH);
  }
  
  if(digitalRead(touch2)==HIGH){
    relais2Status = relais2Status==0?1:0;
    digitalWrite(relais2, relais2Status);
  }
}

void doTimer(){
  int currentMillis = millis();
  if((currentMillis - PAUSE) > lastMillis){
    lastMillis = currentMillis;
    digitalWrite(relais1, HIGH);
    digitalWrite(led, LOW);
  }  
}

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kategorien

Tools

  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator
  • Widerstandsrechner
  • Rechner für Strom & Widerstände
  • ASCII Tabelle

Meta

  • Videothek
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Kontakt
  • Cookie-Richtlinie (EU)

Links

Blogverzeichnis Bloggerei.de Blogverzeichnis TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com
©2023 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb