Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define BLYNK_PRINT Serial
- #define pin_nadajnik D2 //Definicja pinu, do którego podłączamy nadajnik (pin TRIG)
- #define pin_odbiornik D3 //Definicja pinu, do którego podłączamy odbiornik (pin ECHO)
- #include <ESP8266WiFi.h>
- #include <BlynkSimpleEsp8266.h>
- char auth[] = "fc67244c210f4c4880084b80772b59c1";
- char ssid[] = "v30Lukasz";
- char pass[] = "qwerty123";
- int rozwijanie, zwijanie, cel, odleglosc; //Zmienna przechowująca odległość
- long czas_impulsu = 0; //Zmienna przechowująca czas trwania impulsu na pinie ECHO
- uint8_t wire1 = D8;
- uint8_t wire2 = D7;
- uint8_t wire3 = D6;
- uint8_t wire4 = D5;
- const uint16_t _delay = 2; /* delay in between two steps. minimum delay more the rotational speed */
- WidgetLCD lcd(V1);
- BLYNK_WRITE(V4)
- {
- cel = param.asInt();
- }
- BLYNK_WRITE(V5)
- {
- rozwijanie = param.asInt();
- }
- BLYNK_WRITE(V6)
- {
- zwijanie = param.asInt();
- }
- void sequence(bool a, bool b, bool c, bool d) { /* four step sequence to stepper motor */
- digitalWrite(wire1, a);
- digitalWrite(wire2, b);
- digitalWrite(wire3, c);
- digitalWrite(wire4, d);
- delay(_delay);
- }
- void setup()
- {
- pinMode(wire1, OUTPUT); /* set four wires as output */
- pinMode(wire2, OUTPUT);
- pinMode(wire3, OUTPUT);
- pinMode(wire4, OUTPUT);
- // Debug console
- Serial.begin(9600);
- pinMode(pin_nadajnik, OUTPUT);
- pinMode(pin_odbiornik, INPUT);
- Blynk.begin(auth, ssid, pass);
- liczOdleglosc();
- lcd.clear();
- lcd.print(0, 0, "D Z I E N");
- lcd.print(0, 1, "D O B R Y :)");
- }
- void liczOdleglosc() {
- digitalWrite(pin_nadajnik, HIGH); //Wystawienie stanu wysokiego na pin nadajnika
- delayMicroseconds(10); //Czas trwania 10us
- digitalWrite(pin_nadajnik, LOW); //Wystawienie stanu niskiego na pin nadajnika
- czas_impulsu = pulseIn(pin_odbiornik, HIGH); //Czas trwania impulsu na pinie Echo
- odleglosc = czas_impulsu / 58; //Wyznaczenie odległości w cm
- Serial.println(odleglosc);
- }
- void loop() {
- if (rozwijanie == 1 && odleglosc > 2 && ((12 - cel) < odleglosc))
- {
- lcd.clear();
- lcd.print(0, 0, "ROZWIJANIE");
- zwijanie = 0;
- Blynk.virtualWrite(V6, zwijanie);
- while (odleglosc > (12 - cel))
- {
- liczOdleglosc();
- Serial.println(rozwijanie);
- sequence(HIGH, HIGH, HIGH, LOW);
- sequence(HIGH, HIGH, LOW, HIGH);
- sequence(HIGH, LOW, HIGH, HIGH);
- sequence(LOW, HIGH, HIGH, HIGH);
- }
- lcd.clear();
- if (odleglosc == 2) {
- lcd.print(0, 0, "ROLETA");
- lcd.print(0, 1, "ROZWINIETA");
- } else
- {
- String x = String("ROZWINIETA W ") + cel*10 + "%";
- lcd.print(0, 0, "ROLETA");
- lcd.print(0, 1, x);
- }
- sequence(LOW, LOW, LOW, LOW);
- }
- if (zwijanie == 1 && odleglosc < 12) {
- lcd.clear();
- lcd.print(0, 0, "ZWIJANIE");
- rozwijanie = 0;
- Blynk.virtualWrite(V5, rozwijanie);
- while (odleglosc < 12)
- {
- liczOdleglosc();
- Serial.println(zwijanie);
- sequence(LOW, HIGH, HIGH, HIGH);
- sequence(HIGH, LOW, HIGH, HIGH);
- sequence(HIGH, HIGH, LOW, HIGH);
- sequence(HIGH, HIGH, HIGH, LOW);
- }
- lcd.clear();
- lcd.print(0, 0, "ROLETA");
- lcd.print(0, 1, "ZWINIETA");
- sequence(LOW, LOW, LOW, LOW);
- }
- Blynk.run();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement