Arduino Taster als Schalter

2 Antworten

Ich bin mir nicht ganz sicher, aber müsste das > pinMode (ledPin, OUTPUT); pinMode (buttonPin, INPUT); < nicht umgekehrt sein?

Sorry, falls ich einen Denkfehler habe, aber müsste doch umgekehrt sein?:D

aber die LED (ledPin) ist doch der OUTPUT (Ausgang) und der Taster (buttonPin) der INPUT (Eingang) oder?

0

Ganz einfach:

Du musst dir überlegen, was du als "wenn ich den Button drücke" verstehst: In dem Moment, wo du draufdrückst (das bedeutet, wenn "state" von 0 auf 1 geht) oder in dem Moment, wo du loslässt (wie bei Mausknöpfen).

Definitv aber nicht "immer, wenn der Schalter gedrückt ist", denn das bedeutet ja, dass während der Schalter gedrückt ist (und auch wenn das nur sehr kurz ist), die LED ständig aus und wieder an geht.

Im Falle von "wo man draufdrückt" müsste der Code so aussehen:

int oldState = 1;

...
oldState=1;
if(oldState == LOW && state == HIGH)
{
    ...
}
oldState=state;

Außerdem wirst du den Button eventuell noch entprellen müssen...

kannst du es bitte mal in den ganzen code einfügen irgendwie klappts nich :D

0
@Lightvinni

ok habs, du hast LOW anstatt 1 geschrieben

int oldState = 1;

...
oldState=1;
if(oldState == 1 && state == HIGH)
{
    ...
}
oldState=state;
0
@Lightvinni

Nein. Eigentlich 0 oder ungleich HIGH ...

int oldState = 1;

...
// <- Hier darf oldState nicht verändert werden!
if(oldState == 0 && state == HIGH)
{
    ...
}
oldState=state;
0
@Lightvinni

Wenn du "oldState == 1" schreibst, kannst du das ganze auch einfach weglassen, so, wie dein ursprünglicher Code ausgesehen hat.

In diesem Fall bringt die Bedingung "oldState == 1" nämlich nichts. Falls du dann auch noch die Zeile "oldState = 1" drin hast, wäre die Bedingung sowieso immer erfüllt.

0

Wieso funktioniert dieser zufallsgenerator bei Arduino nicht?

Hallo zusammen!

Ich möchte bei einer Rennautobahn eine Ampel bauen. Um es spannender zu gestalten möchte ich, das die letzte LED nach einer zufällig gewählten Zeit (zwischen 1 und 4 sekunden) . Zum steuern verwende ich einen Arduino Mega und zum programmieren das Arduino Programm. das nachfolgende Programm haben ich schon in C# getestet und dort funktioniert es, nur leider nicht im Arduino Programm.

const int intRot13 = 1;
const int intRot12 = 2;
const int intRot11 = 3;
const int intRot10 = 4;
const int intRot9 = 5;

void setup()
{
  pinMode(intRot13, OUTPUT);
  pinMode(intRot12, OUTPUT);
  pinMode(intRot11, OUTPUT);
  pinMode(intRot10, OUTPUT);
  pinMode(intRot9, OUTPUT);
}

void Zufall(byte bytAmpel)
{
 int Zahl1 = 0;
 random Rnd = new random();
 Zahl1 = Rnd.Next(1000, 4000)
}

void loop()
{
  digitalWrite(1, HIGH);
  delay(1500);
  digitalWrite(2, HIGH);
  delay(1500);
  digitalWrite(3, HIGH);
  delay(1500);
  digitalWrite(4, HIGH);
  delay(1500);
  digitalWrite(5, HIGH);
  delay(Zufall());
  delay (3000);
  digitalWrite(1, LOW);
  digitalWrite(2, LOW);
  digitalWrite(3, LOW);
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);
}

Wäre für jede Hilfe dankbar!

...zur Frage

Arduino Programmierung ?

Hallo,

Ich wollte gerne ein art Türschloss mit zwei Tastern zum öffnen und schließen bauen, hier bei nutze ich ein Servo um das Schloss zu öffnen.

In dem Projekt bin ich gerade dabei das Programm zu schreiben, ich bin bereits soweit dass ich den Öffnertaster drücke und der Servo öffnet als nächstes muss im Progamm der Arduino ein Signal bekommen von einem zweiten Taster dass der Servo wieder zurück fährt und wieder Schließt.

WIe Programmiere ich das ?

Das Programm bis jetzt:

#include <Servo.h>

Servo motor1;

const int buttonPin = 2;

int buttonState = 0;

 void setup() {

 motor1.attach(9);

 pinMode(buttonPin, INPUT);

 }

 void loop( ) {

buttonState = digitalRead(buttonPin);

if (buttonState == HIGH) {

motor1.write(30);

///Hier soll der Arduino durch das Signal eines Taster den Servo wieder Schließen///

motor1.write(120);

delay(5000);

 }

else{

  

}

}

Ich würde mich über eine Antwort freuen 

Gruß Julian

...zur Frage

Arduino Nano mit Bluetooth HC-05?

Hallo, Also ich versuche gerade mit dem Arduino Nano und dem Bluetooth Modul HC-05 eine Led( später Relais und eine Lampe) anzusteuern. Ich habe auch schon einen entsprechenden Code. Kann mich auch mit dem Handy verbinden. Wenn ich jetzt bei der App( funktioniert bei ziemlich jeder App) den Power Button oder ein Button drücke leuchtet zwar die RX Led vom Arduino kurz aber die Led schaltet nicht. Was könnte hier falsch sein?

        #include <SoftwareSerial.h>

// Define the data transmit/receive pins in Arduino


int state = 0;
#define Led1 A6



SoftwareSerial mySerial(10, 11); // RX, TX


void setup() {
pinMode(Led1, OUTPUT);
  digitalWrite(Led1, LOW);

Serial.begin(38400); // For the IDE monitor Tools -> Serial Monitor


// Any code that you want to run once....

}

void loop() {

if(Serial.available() > 0){ // Checks whether data is comming from the serial port
    state = Serial.read(); // Reads the data from the serial port
 }
 if (state == '1') {
  digitalWrite(Led1, HIGH); // Turn LED ON
  Serial.println("LED: ON"); // Send back, to the phone, the String "LED: ON"
  state = 0;
 }
 else if (state == '0') {
  digitalWrite(Led1, LOW);
  Serial.println("LED: OFF");;
  state = 0;
 } 
}   
...zur Frage

Was möchtest Du wissen?