Funkce
Kód: Vybrat vše
lcd.print(digitalRead(stav)); // Prints value on Potpin1 to LCD
Kód: Vybrat vše
lcd.print(stav)
Kód: Vybrat vše
lcd.print(digitalRead(stav)); // Prints value on Potpin1 to LCD
Kód: Vybrat vše
lcd.print(stav)
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 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;
int LED=13;
// navody.arduino-shop.cbool aktualniPatro;
int stav = 0;
// 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(LED, OUTPUT);
pinMode(digitalpin1, INPUT);
pinMode(digitalpin2, INPUT);
pinMode(digitalpin3, INPUT);
myStepper.setSpeed(60);
lcd.begin();
}
void loop()
{
if(digitalpin1){
stav = 1;}
if(digitalpin2){
stav = 2;}
if(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);
lcd.print("Patro: ");
lcd.print(stav);
}
Kód: Vybrat vše
if(digitalpin1){
stav = 1;}
if(digitalpin2){
stav = 2;}
if(digitalpin3){
stav = 3;}
Kód: Vybrat vše
if(digitalRead(digitalpin1)){
stav = 1;}
if(digitalRead(digitalpin2)){
stav = 2;}
if(digitalRead(digitalpin3)){
stav = 3;}
Kód: Vybrat vše
#include <Stepper.h>
#include <Wire.h>
int tlacitko = 3; //Směr proti hod.ruč.
int tlacitko2 = 2; //Směr hod.ručiček
int tlacitko3 = 4; // tlacitko
int kroky = 50; //Kroky ke každému stisknutí tlačítka
int cteni = 0; //Uloží hodnotu čtení tlačítka
int cteni2 = 0; //Uloží hodnotu čtení tlačítka tlacitka2
int cteni3 =0; //Uloží hodnotu čtení tlačítka tlacitka3
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 <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)){
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);
lcd.print("Patro: ");
lcd.print(stav);
}
Kód: Vybrat vše
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define PINsensPatroprvni 5
#define PINsensPatrodruhy 6
#define PINsensPatrotreti 7
#define PINbtnPatroprvni 2
#define PINbtnPatrodruhy 3
#define PINbtnPatrotreti 4
#define motorPin1 8
#define motorPin2 10
#define motorPin3 9
#define motorPin4 11
int krokMotoru = 0;
int stav = 0;
LiquidCrystal_I2C lcd(0x27, 20, 4);
bool PINsensPatro1, PINsensPatro2, PINsensPatro3; //snimace pater
bool PINbtnPatro1, PINbtnPatro2, PINbtnPatro3; //tlacitka v patrech
bool stavVytahu; //musis vedet, co vytah dela, abys podle toho mohl resit nejakou logiku. Tezko muzes privolat vytah dolu, když jede nahoru
//0 - vytah stoji, 1 - vytah jede dolu, 2 - vytah jede nahoru, atd. Pripadne to řesit pomoci bool proměnnych
bool vytahStoji;
bool stisknutoPrivolavaciTlacitko;
bool pozadovanePatro;
bool jedNahoru;
bool jedDolu;
void setup() {
// put your setup code here, to run once:
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
pinMode(PINbtnPatroprvni, INPUT);
pinMode(PINbtnPatrodruhy, INPUT);
pinMode(PINbtnPatrotreti, INPUT);
pinMode(PINsensPatroprvni,INPUT);
pinMode(PINsensPatrodruhy,INPUT);
pinMode(PINsensPatrotreti,INPUT);
lcd.begin();
}
void loop(){ //zde přidělit proměnným hodnoty z digitálních vstupů
if(digitalRead(PINsensPatroprvni)){
stav = 1;}
if(digitalRead(PINsensPatrodruhy)){
stav = 2;}
if(digitalRead(PINsensPatrotreti)){
stav = 3;}
if(vytahStoji && stisknutoPrivolavaciTlacitko)
{
if(stav < pozadovanePatro){
jedNahoru = true;
}
if(stav > pozadovanePatro){
jedDolu = true;}
if(stav == pozadovanePatro){
jedNahoru = false;
jedDolu = false;}
}}
void patra(){
lcd.setCursor(0,0);
lcd.print("Patro: ");
lcd.print(stav);
}
void JedNahoru(){
krokMotoru++;
if(krokMotoru > 3){
krokMotoru = 0;
}
RizeniMotoru(krokMotoru);
}
void JedDolu(){
krokMotoru--;
if(krokMotoru < 0){
krokMotoru = 3;
}
RizeniMotoru(krokMotoru);
}
void RizeniMotoru(int step){
if(step < 0 || step > 3){
//jenom takovej sichr.
//Pokud je proměnná step menší než 0, nebo větší než 3, tak se do proměnné přiřadí 0, tedy první krok
step = 0;
}
switch(step){
case 0:
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
break;
case 1:
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
break;
case 2:
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
break;
case 3:
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
break;
}
delay(3);
} [code]
Kód: Vybrat vše
if(digitalRead(PINbtnPatroprvni)){
pozadovanePatro = 1;
stisknutoPrivolavaciTlacitko = true;
}
if(digitalRead(PINbtnPatrodruhy)){
pozadovanePatro = 2;
stisknutoPrivolavaciTlacitko = true;
}
if(digitalRead(PINbtnPatrotreti)){
pozadovanePatro = 3;
stisknutoPrivolavaciTlacitko = true;
}
Kód: Vybrat vše
patra();
if(jedNahoru){
JedNahoru();
}
if(jedDolu){
JedDolu();
}
Kód: Vybrat vše
//tento řádek
if(vytahStoji && stisknutoPrivolavaciTlacitko)
//nahraď tímto:
if(stav != pozadovanePatro)
Kód: Vybrat vše
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define PINsensPatroprvni 5
#define PINsensPatrodruhy 6
#define PINsensPatrotreti 7
#define PINbtnPatroprvni 2
#define PINbtnPatrodruhy 3
#define PINbtnPatrotreti 4
#define motorPin1 8
#define motorPin2 10
#define motorPin3 9
#define motorPin4 11
int krokMotoru = 0;
int stav = 0;
LiquidCrystal_I2C lcd(0x27, 20, 4);
bool PINsensPatro1, PINsensPatro2, PINsensPatro3; //snimace pater
bool PINbtnPatro1, PINbtnPatro2, PINbtnPatro3; //tlacitka v patrech
bool stavVytahu; //musis vedet, co vytah dela, abys podle toho mohl resit nejakou logiku. Tezko muzes privolat vytah dolu, když jede nahoru
//0 - vytah stoji, 1 - vytah jede dolu, 2 - vytah jede nahoru, atd. Pripadne to řesit pomoci bool proměnnych
bool vytahStoji;
bool stisknutoPrivolavaciTlacitko;
bool pozadovanePatro;
bool jedNahoru;
bool jedDolu;
void setup() {
// put your setup code here, to run once:
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
pinMode(PINbtnPatroprvni, INPUT);
pinMode(PINbtnPatrodruhy, INPUT);
pinMode(PINbtnPatrotreti, INPUT);
pinMode(PINsensPatroprvni,INPUT);
pinMode(PINsensPatrodruhy,INPUT);
pinMode(PINsensPatrotreti,INPUT);
lcd.begin();
}
void loop(){//zde přidělit proměnným hodnoty z digitálních vstupů
if(digitalRead(PINbtnPatroprvni)){
pozadovanePatro = 1;
stisknutoPrivolavaciTlacitko = true;
}
if(digitalRead(PINbtnPatrodruhy)){
pozadovanePatro = 2;
stisknutoPrivolavaciTlacitko = true;
}
if(digitalRead(PINbtnPatrotreti)){
pozadovanePatro = 3;
stisknutoPrivolavaciTlacitko = true;
}
if(digitalRead(PINsensPatroprvni)){
stav = 1;}
if(digitalRead(PINsensPatrodruhy)){
stav = 2;}
if(digitalRead(PINsensPatrotreti)){
stav = 3;}
if(stav != pozadovanePatro)
{
if(stav < pozadovanePatro){
jedNahoru = true;
}
if(stav > pozadovanePatro){
jedDolu = true;}
if(stav == pozadovanePatro){
jedNahoru = false;
jedDolu = false;}
}
if(jedNahoru){
JedNahoru();
}
if(jedDolu){
JedDolu();
}}
void vypispatra(){
lcd.setCursor(0,0);
lcd.print("Patro: ");
lcd.print(stav);
}
void JedNahoru(){
krokMotoru++;
if(krokMotoru > 3){
krokMotoru = 0;
}
RizeniMotoru(krokMotoru);
}
void JedDolu(){
krokMotoru--;
if(krokMotoru < 0){
krokMotoru = 3;
}
RizeniMotoru(krokMotoru);
}
void RizeniMotoru(int step){
if(step < 0 || step > 3){
//jenom takovej sichr.
//Pokud je proměnná step menší než 0, nebo větší než 3, tak se do proměnné přiřadí 0, tedy první krok
step = 0;
}
switch(step){
case 0:
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
break;
case 1:
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
break;
case 2:
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
break;
case 3:
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
break;
}
delay(3);
}
Kód: Vybrat vše
//tento kus kódu
if(stav != pozadovanePatro)
{
if(stav < pozadovanePatro){
jedNahoru = true;
}
if(stav > pozadovanePatro){
jedDolu = true;}
if(stav == pozadovanePatro){
jedNahoru = false;
jedDolu = false;}
}
//nahradit tímto
//v podstatě jenom odstraníš ten první IF
if(stav < pozadovanePatro){
jedNahoru = true;
}
if(stav > pozadovanePatro){
jedDolu = true;}
if(stav == pozadovanePatro){
jedNahoru = false;
jedDolu = false;}
Kód: Vybrat vše
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define PINsensPatroprvni 7
#define PINsensPatrodruhy 6
#define PINsensPatrotreti 5
#define PINbtnPatroprvni 3
#define PINbtnPatrodruhy 2
#define PINbtnPatrotreti 4
#define motorPin1 8
#define motorPin2 10
#define motorPin3 9
#define motorPin4 11
int krokMotoru = 0;
int stav = 0;
LiquidCrystal_I2C lcd(0x27, 20, 4);
bool PINsensPatro1, PINsensPatro2, PINsensPatro3; //snimace pater
bool PINbtnPatro1, PINbtnPatro2, PINbtnPatro3; //tlacitka v patrech
bool stavVytahu; //musis vedet, co vytah dela, abys podle toho mohl resit nejakou logiku. Tezko muzes privolat vytah dolu, když jede nahoru
//0 - vytah stoji, 1 - vytah jede dolu, 2 - vytah jede nahoru, atd. Pripadne to řesit pomoci bool proměnnych
bool vytahStoji;
bool stisknutoPrivolavaciTlacitko;
bool pozadovanePatro;
bool jedNahoru;
bool jedDolu;
void setup() {
// put your setup code here, to run once:
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
pinMode(PINbtnPatroprvni, INPUT);
pinMode(PINbtnPatrodruhy, INPUT);
pinMode(PINbtnPatrotreti, INPUT);
pinMode(PINsensPatroprvni,INPUT);
pinMode(PINsensPatrodruhy,INPUT);
pinMode(PINsensPatrotreti,INPUT);
lcd.begin();
}
void loop(){//zde přidělit proměnným hodnoty z digitálních vstupů
if(digitalRead(PINbtnPatroprvni)){
pozadovanePatro = 1;
stisknutoPrivolavaciTlacitko = true;
}
if(digitalRead(PINbtnPatrodruhy)){
pozadovanePatro = 2;
stisknutoPrivolavaciTlacitko = true;
}
if(digitalRead(PINbtnPatrotreti)){
pozadovanePatro = 3;
stisknutoPrivolavaciTlacitko = true;
}
if(digitalRead(PINsensPatroprvni)){
stav = 1;}
if(digitalRead(PINsensPatrodruhy)){
stav = 2;}
if(digitalRead(PINsensPatrotreti)){
stav = 3;}
if(stav < pozadovanePatro){
jedNahoru = true;
}
if(stav > pozadovanePatro){
jedDolu = true;}
if(stav == pozadovanePatro){
jedNahoru = false;
jedDolu = false;}
void vypispatra();
if(jedNahoru){
(jedNahoru);
}
if(jedDolu){
(jedDolu);
}
}
void vypispatra(){ //funkce vypis pater
lcd.setCursor(0,0);
lcd.print("Patro: ");
lcd.print(stav);
}
void JedNahoru(){ //funkce jed dolu
krokMotoru++;
if(krokMotoru > 3){
krokMotoru = 0;
}
RizeniMotoru(krokMotoru);
}
void JedDolu(){ //funkce jed na horu
krokMotoru--;
if(krokMotoru < 0){
krokMotoru = 3;
}
RizeniMotoru(krokMotoru);
}
void RizeniMotoru(int step){
if(step < 0 || step > 3){
//jenom takovej sichr.
//Pokud je proměnná step menší než 0, nebo větší než 3, tak se do proměnné přiřadí 0, tedy první krok
step = 0;
}
switch(step){
case 0:
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
break;
case 1:
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
break;
case 2:
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
break;
case 3:
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
break;
}
delay(3);
}
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 8 hostů