Wie bringt man dieses Programm für einen Arduinowettbewerb zum laufen?

Aufgabe - (Computer, arduino)

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Ich glaube, du muss lediglich die }-Klammer bei deinen IF-Abfragen eine Zeile hochsetzen. Im Moment fragst du IO4 nur ab, wenn IO27=LOW ist. Das Gleiche ist bei der Abfrage von IO5, die nur passiert, wenn IO4=LOW ist. Die Frage ist auch, wo dein Schalter dranhängt. Hat er auf der anderen Seite 5V (=HIGH) oder Masse (=LOW)?

10

Das mit den Klammern hat nich funktioniert.. da leuchtet immernoch nichts. An der einen Seite vom Schalter ist der Pin und an der Anderen GND, also Masse.

Danke für deine Hilfe schonmal.

0
32
@xXsebesastianXx

Hmm, hast du mal probiert, mit einem Programm mal einfach eine LED blinken zu lassen. So was wie:

#include <IOpins.h>

void setup()
{
pinMode(IO15, OUTPUT); //rote LED
}

void loop()
{
digitalWrite(IO15,HIGH);
wait(1000);
digitalWrite(IO15,LOW);
wait(1000)
}

Blinkt da die rote LED?

0
10
@maussuam

Ja. Habs jetzt aber auch gelöst :) Man musste den internen Pull-up- Wiederstand für die Schalter aktivieren.

0

und wie hast du das gemacht? den internen Pull-up- Wiederstand für die Schalter aktivieren?

10

einfach für jeden SChalter den Befehl digitalWrite([Schalter], HIGH); hinzufügen.

0
1
@xXsebesastianXx

das geht iwie immer noch nicht -.- also BSP: pinMode(IO27, INPUT); digitalWrite(IO27, HIGH);// Schalter S2

0
1
@F4FCyax

digitalWrite([Schalter], HIGH); im setup oder im loop?

0
10
@F4FCyax

oh... sorry, habs nicht gesehen, dass du was gepostet hast. im setup natürlich, sonst geht das nciht

0

Wie hast du denn programmieren gelernt? Möchte eben auch lernen zu programmieren! Aber bin erst 12 und da ist es eben schwierig etwas zu finden!

Lg iRobi8

P.S: Welche sprache ist das(arduino)?

Arduino Motor und Joystick?

Ich hab bei meinem Arduino einen Code eingegeben (siehe unten) wobei der die Stellung des Joysticks ausgibt und demnach den Motor links oder rechts drehen lassen soll. Jedoch passiert nichts und nach einmaligem Auslesen im seriellen Monitor wird dies nicht wiederholt (in void loop()).

Was ist falsch?

const int SW_pin = 2; 

const int X_pin = 0;

const int Y_pin = 1; 

const int Motor_pin = 9;

const int Motor_pin2 = 10;

void setup() {

 pinMode(SW_pin, INPUT);

 digitalWrite(SW_pin, HIGH);

 Serial.begin(9600);

 pinMode(Motor_pin,OUTPUT);

 pinMode(Motor_pin2,OUTPUT);

}

void loop() {

 Serial.print("Switch: ");

 Serial.print(digitalRead(SW_pin));

 Serial.print("\n");

 Serial.print("X-axis: ");

 Serial.print(analogRead(X_pin));

 Serial.print("\n");

 Serial.print("Y-axis: ");

 Serial.println(analogRead(Y_pin));

 Serial.print("\n\n");

 delay(500);

 for(int a=analogRead(X_pin);a < 519;){

  pinMode(Motor_pin2,LOW);

  pinMode(Motor_pin,HIGH);

 }

  

 for(int b=analogRead(Y_pin);b > 519;){

  pinMode(Motor_pin2,HIGH);

  pinMode(Motor_pin,LOW);

 }  

}

...zur Frage

Arduino Programm funktioniert nicht?

Meine Arduino Rolladensteuerung soll bei einmaligem klicken auf den taster den rolladen ganz herunter fahren danach kann man ihn über den gleichen Taster wieder hochfahren. Nun das meiner Meinung nach komplizierte: Während der Rolladen auf dem weg nach oben oder unten ist soll er stehen bleiben und bei weiterem klicken wieder weiterfahren allerdings in die entgegengesetzte Richtung. Wie würdet ihr das Programmieren bzw was ist an meinem Programm (siehe unten) Falsch? Ich weis was mit den millis() nicht stimmt aber wie könnte man das lösen? bitte um schnelle Antwort :)

Programm : int Taster = 0;

int R1 = 1;

int R2 = 2;

int Status = 0;

int Unterwegs = 0;

int gestoppt = 0;

int R1_gestoppt = 0;

int R2_gestoppt = 1;

 int T1 = 0;

 int T2 = 0;

 int T3 = 0;

 int T4 = 0;

void setup() {

 pinMode(Taster, INPUT);

 pinMode(R1, OUTPUT);

 pinMode(R2, OUTPUT);

 digitalWrite(R1, HIGH);

 Unterwegs = 1;

 delay(3000);

 Unterwegs = 0;

 digitalWrite(R1, LOW);

 Status = 1;

 Serial.begin(2000000);

}

void loop() {

Serial.print("Taster:"); Serial.println(digitalRead(Taster));

Serial.print("Status:"); Serial.println(Status);

Serial.print("Unterwegs:"); Serial.println(Unterwegs);

Serial.print("Gestoppt:"); Serial.println(gestoppt);

Serial.print("R1 gestoppt:"); Serial.println(R1_gestoppt);

Serial.print("R2 gestoppt:"); Serial.println(R2_gestoppt);

   if (digitalRead(R1) == HIGH) {

 digitalWrite(R2, LOW);} else {

 if (digitalRead(R2) == HIGH){

 digitalWrite(R1, LOW);}}

if (digitalRead(Taster) == HIGH) {

  if (Status == 1) {

   digitalWrite(R2, HIGH);

   R1_gestoppt = 0;

   R2_gestoppt = 0;

   Unterwegs = 1;

   T1 = millis();

  if (T1 > 3000) {

   Unterwegs = 0;

   digitalWrite(R2, LOW);

   T1 = 0;

   Status++;}} else {

     if (Status == 2) {

   digitalWrite(R1, HIGH);

   R1_gestoppt = 0;

   R2_gestoppt = 0;

   Unterwegs = 1;

   T2 = millis();

   if (T2 > 3000) {

   Unterwegs = 0;

   digitalWrite(R1, LOW);

   T2 = 0;

   Status = 1;}}}}

   

   if (Unterwegs == 1) {

   if (digitalRead(Taster) == HIGH) {

   if (digitalRead(R1) == HIGH) {

       digitalWrite(R1 ,LOW);

       R1_gestoppt = 1;

       R2_gestoppt = 0;

       gestoppt = 1;} else {

   if(digitalRead(R2) == HIGH) {

       digitalWrite(R2, LOW);

       R1_gestoppt = 0;

       R2_gestoppt = 1;

       gestoppt = 1;}}

  if (gestoppt == 1) {

  if (digitalRead(Taster) == HIGH) {

  if (R1_gestoppt == 1) {

      digitalWrite(R1, LOW);

      digitalWrite(R2, HIGH);

      R1_gestoppt = 0;

     T3 = millis();

     if(T3 > 3000) {

      digitalWrite(R2, LOW);

      T3 = 0;}} else {

  if (R2_gestoppt == 1) {

      digitalWrite(R2, LOW);

      digitalWrite(R1, HIGH);

      R2_gestoppt = 0;

      T4 = millis();

      if(T4 > 3000) {

      digitalWrite(R1, LOW);

      T4 = 0;}}}}}}}}

                     

                     

    

...zur Frage

Arduino Schrittmotor?

Hallo! Ich bin gerade an meinem Projekt automatische Hüherklappe.

Ich habe mir dafür ein Arduino Set besorgt. Der Fotowiderstand soll am Ende dem Schrittmotor sagen, wann er die Tür zu machen soll. Ich bin jetzt schon so weit, dass es wenn es dunkel wird der Schrittmotor sich anfängt zu drehen und anders herum wenn es hell wird. Mein Problem ist aber, dass der Motor nicht mehr aufhören möchte sich zu drehen. Er soll also nach einer bestimmten Anzahl an Drehugen stehen bleiben und dann am Abend sich wieder in die andere Richtung drehen, quasi wenn der Wert des Fotowiderstandes wieder unterschritten wird. Solagnge soll der Motor still stehen.

Hier ist mein Quelltext:

int eingang= A0;

int LED = 10;

int sensorWert = 0;

#include <Stepper.h>

int SPU = 2048;

Stepper Motor(SPU, 3,5,4,6);

void setup()

{

Serial.begin(9600);

pinMode (LED, OUTPUT);

Motor.setSpeed(10);

}

void loop()

{

sensorWert =analogRead(eingang);

Serial.print("Sensorwert = " );

Serial.println(sensorWert);

if (sensorWert > 400 )

{

digitalWrite(LED, HIGH);

Motor.step(2048);

}

else

{

digitalWrite(LED, LOW);

Motor.step(-2048);

}

delay (50);

}

...zur Frage

LED soll blinken, bleibt aber nur an?

Hallo, ich bin noch ein Arduino Anfänger und ich habe mir von den beispielen die blink vorlage rausgenommen und ausgeführt. aber die led bleibt nur an, dh es blinkt nicht. code:

void setup() { // Port 13 wird als Ausgang festgelegt pinMode(13, OUTPUT); }

void loop() { digitalWrite(13, HIGH); // Port 13 wird high geschaltet delay(1000); // eine Sekunde warten digitalWrite(13, LOW); // Port 13 wird low geschaltet delay(1000); // eine Sekunde warten }

und schaltung gibt es da als bild

mfg loewesk

...zur Frage

Wie können wir dieses Arduinoreaktionsspiel richtig Programmieren?

Hallo liebe Comunity!

Wir entwickeln ein Spiel mit einem Arduino, jedoch komme ich mit dem Programmieren nicht weiter. Das Spiel läuft so ab: Es gibt jeweils 4 Spieler, die alle ein Button besitzen. In der Mitte befindet sich einer Holzplatte in der 1 Lämpchen integriert ist. Dieses Lämpchen soll zufällig aufleuchten. Wenn dieses Lämpchen leuchtet müssen die Spieler auf den Button drücken. Jeder Spieler hat ein Lämpchen, die in der Holzplatte integriert sind. Der Spieler, der zuerst auf den Button gedrückt hat, bei dem Leuchtet dann das Lämpchen und bei den anderen nicht. Dannach soll an einer anderen Holzplatte angezeigt werden wie schnell der gewonnene Spieler auf den Button gedrückt hat. Das wird durch 2 Lämpchen angezeigt. Lämpchen 1: von X bis X (gute Reaktionszeit) Lämpchen 2: von X bis X (schlechte Reaktionszeit)

sketch_mar04a / Arduino 1.0.6

// constants won't change. They're used here to // set pin numbers: const int buttonPin0 = 2; // the number of the pushbutton pin const int ledPin0 = 13; // the number of the LED pin const int buttonPin1 = 3; // the number of the pushbutton pin const int ledPin1 = 12; const int buttonPin2 = 4;

const int ledPin2 = 11; const int buttonPin3 = 5; const int ledPin3 = 10; int pushed = 1;

void setup() { // initialize the LED pin as an output: pinMode(ledPin0, OUTPUT);

// initialize the pushbutton pin as an input: pinMode(buttonPin0, INPUT);

// initialize the LED pin as an output: pinMode(ledPin1, OUTPUT);

// initialize the pushbutton pin as an input: pinMode(buttonPin1, INPUT); // initialize the LED pin as an output: pinMode(ledPin2, OUTPUT);

// initialize the pushbutton pin as an input: pinMode(buttonPin2, INPUT); // initialize the LED pin as an output: pinMode(ledPin3, OUTPUT);

// initialize the pushbutton pin as an input: pinMode(buttonPin3, INPUT);

}

void loop(){ int buttonState0 = 0; // variable for reading the pushbutton status int buttonState1 = 0; int buttonState2 = 0; int buttonState3 = 0;

// read the state of the pushbutton value: buttonState0 = digitalRead(buttonPin0);

// check if the pushbutton is pressed. // if it is, the buttonState is HIGH: if (buttonState0 == HIGH) {

// turn LED on:

digitalWrite(ledPin0, HIGH);

} else { // turn LED off: digitalWrite(ledPin0, LOW);

} ( // read the state of the pushbutton value: buttonState1 = digitalRead(buttonPin1); // check if the pushbutton is pressed. // if it is, the buttonState is HI

...zur Frage

Arduino HR-S04 Entfernungsmesser misst nicht korrekt?

Hallo,

Ich habe einen Arduino UNO und habe mir einen Entfernungsmesser (HR-S04) angeschlossen, ich habe das ganze programmiert und will nun auf dem Seriellen Monitor anzeigen lassen, wie viele cm die Entfernung beträgt. Wenn ich nun den Seriellen Monitor starte und den Entfernungsmesser irgendeine Distanz messen lasse, wird dort immer ein Wert über 18000cm angezeigt, das kann grundsätzlich nicht stimmen, es wäre nett, wenn ihr mir helfen würdet! :D (Bilder dazu und Code sind unten)

Das ist mein Code:

long laenge;

long cm;

void setup() 

{

 Serial.begin (9600);

 pinMode(7,OUTPUT);

 pinMode(8,INPUT);

}

void loop() 

{

 digitalWrite(7,LOW);

 delayMicroseconds(2);

 digitalWrite(7,HIGH);

 delayMicroseconds(5);

 digitalWrite(7,LOW);

 laenge = pulseIn(8,HIGH);

 Serial.print(cm);

 Serial.println("cm");

cm=laenge; //Ich weiß, dass ich an dieser Stelle warscheinlich etwas ändern muss, ich weiß nur nicht was...

 delay(1000);

}

Mfg Alex

...zur Frage

Was möchtest Du wissen?