Hirdetés
-
PROHARDVER!
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
Imy
veterán
Olyan problémám lenne, hogy egy nyomógombbal akarom elindítani, majd esetleg egy hosszú nyomással leállítani a motort, ami a következő program szerint fut:
/*
*/
#include <Stepper.h>
#define STEPS 100
#define IN1 8
#define IN2 9
#define IN3 10
#define IN4 11
Stepper small_stepper(STEPS, 8, 10, 9, 11);
int Steps2Take = 0;
long temps = 0;
int Compteur;
int Rotate_n_temp;
int Rotate_n;
int PSW = 5;
int PSW_S = 0;
void setup()
{
pinMode(13, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(PSW, INPUT); // Push Switch
}
void loop()
{
if (digitalRead(PSW) == HIGH)
{
Push_b_on:
Rotate_n=2;
Rotate_n_temp = Rotate_n-1;
digitalWrite(13, HIGH);
delay(100);
small_stepper.setSpeed(300);
if (Compteur<=Rotate_n_temp){
Steps2Take = -4096;
temps = millis();
small_stepper.step(Steps2Take);
temps = millis()- temps ;
digitalWrite(IN1, LOW);
delay(2);
digitalWrite(IN2, LOW);
delay(2);
digitalWrite(IN3, LOW);
delay(2);
digitalWrite(IN4, LOW);
delay(2);
delay(2000); //pause
Steps2Take = 4096;
temps = millis();
small_stepper.step(Steps2Take);
temps = millis()- temps ;
Serial.println(temps);
digitalWrite(IN1, LOW);
delay(2);
digitalWrite(IN2, LOW);
delay(2);
digitalWrite(IN3, LOW);
delay(2);
digitalWrite(IN4, LOW);
delay(2);
delay(2000); //pause
// Glignotement de la LED
digitalWrite(13, LOW);
delay(100);
digitalWrite(13, HIGH);
delay(100);
Compteur++; //Ajoute 1 au Compteur
}
else{
digitalWrite(IN1, LOW);
delay(2);
digitalWrite(IN2, LOW);
delay(2);
digitalWrite(IN3, LOW);
delay(2);
digitalWrite(IN4, LOW);
delay(2);
Compteur=0;
goto Push_b_on;
}
}
else
{
digitalWrite(13, HIGH);
delay(50);
digitalWrite(13, LOW);
delay(100);
digitalWrite(13, HIGH);
delay(50);
digitalWrite(13, LOW);
delay(100);
}
}Mivel soros futású a program, így a goto paranccsal nem ugrik vissza az elejére, azaz ha akkor nincs benyomva a gomb, akkor nem megy a motor.
Hogyan lehetne megoldani, hogy a gomb egyszeri rövid nyomására elinduljon, és addig ne álljon le, amíg a gombot nem nyomom hosszan? (Leállítás kb 2sec nyomásra)
Új hozzászólás Aktív témák
- Bravo 15 C7VF 15.6" FHD IPS Ryzen 7 7735HS RTX 4060 16GB 1TB NVMe magyar vbill gar
- Eladó egy kiváló állapotban lévő Honor 400 Pro mobiltelefon
- Microsoft Surface Laptop 4 13.5" i7-1185G7 16GB 256GB 1 év garancia
- HONOR WATCH 5
- i5 12500/ RTX3070/ 32GB DDR4/ 1TB SSD alapú konfig/ garancia/ ingyen foxpost
- új HP HyperX Cloud III S headset gamer Fejhallgató
- BESZÁMÍTÁS! Apple Watch Ultra 2 49mm Cellular okosóra garanciával hibátlan működéssel
- DELL PowerEdge R740 rack szerver - 2xGold 6130 (16c/32t, 2.1/3.7GHz), 64GB RAM, 10Gbit HBA330, áfás
- Apple iPhone 14 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- ÚJ ELEKTROMOS ROLLER Black friday Hardverapró.húúú!!! 2/3 ár alatt a és e-bike dobozban, 1 év gar.:
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: ATW Internet Kft.
Város: Budapest
ekkold

