#include <DHT.h> #include <Strela.h> #define Trig P2 #define Echo P1 #include <Servo.h> Servo servo; #define DHTPIN P5 DHT dht(DHTPIN, DHT11); int ugol = 25; int smotrim_vlevo; int smotrim_vpravo; int smotrim_priamo; int vremia; void setup() { servo.attach(P4); Serial.begin(9600); } void ehat_priamo(){ drive(35, 35); } void ehat_nazad(){ drive(0, 0); } void ehat_vpravo() { drive(-35, -35); delay(700); drive(0, 0); delay(100); drive(45, 0); } void ehat_vlevo(){ drive(-35, -35); delay(700); drive(0, 0); delay(100); drive(0, 45); } void stoiat(){ drive(0, 0); } void kak_meriat_sleva(){ digitalWrite(Trig, HIGH); delayMicroseconds(10); digitalWrite(Trig, LOW); vremia = pulseIn(Echo, HIGH); smotrim_vlevo = vremia/58; } void kak_meriat_priamo(){ digitalWrite(Trig, HIGH); delayMicroseconds(10); digitalWrite(Trig, LOW); vremia = pulseIn(Echo, HIGH); smotrim_priamo = vremia/58; Serial.println(smotrim_priamo); } void kak_meriat_sprava(){ digitalWrite(Trig, HIGH); delayMicroseconds(10); digitalWrite(Trig, LOW); vremia = pulseIn(Echo, HIGH); smotrim_vpravo = vremia/58; } void kak_ismerut_temperaturu(){ float h = dht.readHumidity(); float t = dht.readTemperature(); Serial.print("влажность"); Serial.print(h); Serial.print("температура"); Serial.print(t); } void loop(){ kak_ismerut_temperaturu(); ehat_priamo(); kak_meriat_priamo(); if(smotrim_priamo<30){ stoiat(); delay(50); for(ugol=90;ugol>=10;ugol--){ servo.write(ugol); delay(10); } ehat_nazad(); delay(150); stoiat(); kak_meriat_sprava(); delay(50); for(ugol=10;ugol<=170;ugol++){ servo.write(ugol); delay(10); } kak_meriat_sleva(); delay(50); for(ugol=170;ugol>=90;ugol--){ servo.write(ugol); delay(10); } if(smotrim_vpravo > smotrim_vlevo){ ehat_vpravo(); delay(300); stoiat(); } else{ ehat_vlevo(); delay(300); stoiat(); } } else{ ehat_priamo(); }