Re: Výtah se 3 podlažími
Napsal: 17 úno 2019, 12:23
Tento kod vypisuje patra a jedzími tak, že když držím jedno tlačítko jede dolů a druhý jede nahoru.
Kód: Vybrat vše
#include <Stepper.h>
int tlacitko = 3; //Směr proti hod.ruč.
int tlacitko2 = 2; //Směr hod.ručiček
int tlacitko3 = 5; // tlacitko to už je přidný jako 3 patro zatím nic nedělá
int kroky = 50; //Kroky ke každému stisknutí tlačítka
int cteni = 0; //Uloží hodnotu čtení tlačítka po směru hod.ruč.
int cteni2 = 0; //Uloží hodnotu čtení tlačítka proti směru hodinových ručiček
int digitalpin1 = 7; //sensor pin
int digitalpin2 = 6;
int digitalpin3 = 5;
// navody.arduino-shop.cbool aktualniPatro;
int stav = 0;
int stop;
// knihovny pro LCD přes I2C
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// nastavení adresy I2C (0x27 v mém případě),
// a dále počtu znaků a řádků LCD, zde 20x4
LiquidCrystal_I2C lcd(0x27, 20, 4);
const int stepsPerRevolution = 500;
Stepper myStepper(stepsPerRevolution, 8,10,9,11);
void setup()
{
pinMode(tlacitko, INPUT);
pinMode(tlacitko2, INPUT);
pinMode(tlacitko3, INPUT);
pinMode(digitalpin1, INPUT);
pinMode(digitalpin2, INPUT);
pinMode(digitalpin3, INPUT);
myStepper.setSpeed(60);
lcd.begin();
}
void loop()
{
if(digitalRead(digitalpin1)){ //zde se čtou hodnoty ze senzorů
stav = 1 ;}
if(digitalRead(digitalpin2)){
stav = 2;}
if(digitalRead(digitalpin3)){
stav = 3;}
//směr proti hod.ruc.
cteni = digitalRead(tlacitko);
if (cteni != 0)
{
myStepper.step(-kroky);
}
//směr hod.ruč.
cteni2 = digitalRead(tlacitko2);
if (cteni2 != 0)
{
myStepper.step(kroky);
}
lcd.setCursor(0,0); // vypisuje patra na lcd display
lcd.print("jak je ");
lcd.print(stav);
}