motoori kasutamine

int switchPin = 2; // lüliti 1 int motor1Pin1 = 3; // viik 2 (L293D) int motor1Pin2 = 4; // viik 7 (L293D) int enablePin = 9; // viik 1(L293D) void setup() { // sisendid pinMode(switchPin, INPUT); //väljundid pinMode(motor1Pin1, OUTPUT); pinMode(motor1Pin2, OUTPUT); pinMode(enablePin, OUTPUT); // aktiveeri mootor1 digitalWrite(enablePin, HIGH); } void loop() { // kui lüliti on HIGH, siis liiguta mootorit ühes suunas: if (digitalRead(switchPin) == HIGH) { digitalWrite(motor1Pin1, LOW); // viik 2 (L293D) LOW digitalWrite(motor1Pin2, HIGH); // viik 7 (L293D) HIGH } // kui lüliti on LOW, siis liiguta mootorit teises suunas: else { digitalWrite(motor1Pin1, HIGH); // viik 2 (L293D) HIGH digitalWrite(motor1Pin2, LOW); // viik 7 (L293D) LOW } }

int switchPin = 2; // lüliti 1 int switchPin2 = 1; // lüliti 2 int potPin = A0; // potentsiomeeter int motor1Pin1 = 3; // viik 2 (L293D) int motor1Pin2 = 4; // viik 7 (L293D) int enablePin = 9; // viik 1(L293D) void setup() { // sisendid pinMode(switchPin, INPUT); pinMode(switchPin2, INPUT); //väljundid pinMode(motor1Pin1, OUTPUT); pinMode(motor1Pin2, OUTPUT); pinMode(enablePin, OUTPUT); } void loop() { //mootori kiirus int motorSpeed = analogRead(potPin); //aktiveeri mootor if (digitalRead(switchPin2) == HIGH) { analogWrite(enablePin, motorSpeed); } else { analogWrite(enablePin, 0); } // kui lüliti on HIGH, siis liiguta mootorit ühes suunas: if (digitalRead(switchPin) == HIGH) { digitalWrite(motor1Pin1, LOW); // viik 2 (L293D) LOW digitalWrite(motor1Pin2, HIGH); // viik 7 (L293D) HIGH } // kui lüliti on LOW, siis liiguta mootorit teises suunas: else { digitalWrite(motor1Pin1, HIGH); // viik 2 (L293D) HIGH digitalWrite(motor1Pin2, LOW); // viik 7 (L293D) LOW } }
Katse Kauguse mõõtmise anduri kasutamine

#define ECHO_PIN 8 #define TRIG_PIN 7 void setup() { pinMode(ECHO_PIN, INPUT); pinMode(TRIG_PIN, OUTPUT); Serial.begin(960); } void loop() { digitalWrite(TRIG_PIN,HIGH); digitalWrite(TRIG_PIN,LOW); int distance=pulseIn(ECHO_PIN, HIGH)/50; Serial.println(distance); } -------------------------------------------------------------------------------------------------------------- #define ECHO_PIN 8 #define TRIG_PIN 7 void setup() { pinMode(ECHO_PIN, INPUT); pinMode(TRIG_PIN, OUTPUT); Serial.begin(960); } void loop() { Serial.println(measure()); } int measure() { digitalWrite(TRIG_PIN,HIGH); digitalWrite(TRIG_PIN,LOW); int distance=pulseIn(ECHO_PIN, HIGH,15000)/50; return constrain(distance,1,300); }
Katse 7. Rahakarp
Kasutasin:
19 juhet
1 lcd
1 takisti
andur
plaat
arduino
Kood on kirjutatud hoiupõrsa jaoks, kasutades liikumisandureid ja ekraani
#include <LiquidCrystal.h> // Pins Sonar HC-SR04 jaoks const int trigPin = 7; const int echoPin = 8; LiquidCrystal lcd(12, 11, 6, 4, 3, 2); unsigned long objectDetectedTime = 0; const unsigned long displayDuration = 5000; // Täisekraani kuvamise kestus (millisekundites) byte DOT[8] = { 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111 }; void setup() { lcd.createChar(0, DOT); // Loo kohandatud naeratuse sümbol lcd.begin(16, 2); // LCD-ekraani initsialiseerimine pinMode(trigPin, OUTPUT); // Määra viigu trigPin väljundiks pinMode(echoPin, INPUT); // Määra echoPin sisendipiniks } void loop() { // Signaali saatmine andurile digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // Helisignaali viiteaja mõõtmine long duration = pulseIn(echoPin, HIGH); // Arvutage kaugus viivitusaja alusel. int distance = duration * 0.034 / 2; // Kontrollige, kas anduri ees on mingi objekt. if (distance < 200) { // video kasutab kaugust 4, kuid näide on seatud teistsugusele kaugusele if (objectDetectedTime == 0) { objectDetectedTime = millis(); // Pidage meeles, millal objekt esmakordselt avastati fillScreenWithSmiley(); } } else { if (objectDetectedTime > 0 && millis() - objectDetectedTime >= displayDuration) { objectDetectedTime = 0; // Objekti tuvastamise aja lähtestamine clearScreen(); } } delay(100); } void fillScreenWithSmiley() { lcd.setCursor(0, 0); lcd.write(byte(0)); lcd.write(byte(0)); lcd.setCursor(14, 0); lcd.write(byte(0)); lcd.write(byte(0)); lcd.setCursor(0, 1); for (int Korda = 0; Korda < 16; Korda++) { lcd.write(byte(0)); } } void clearScreen() { lcd.clear(); lcd.setCursor(2, 1); for (int Korda = 0; Korda < 12; Korda++) { lcd.write(byte(0)); } }

Liikumisandureid kasutatakse laialdaselt erinevates valdkondades ja seadmetes liikuvate objektide tuvastamiseks. Turvasüsteemid, Valgustus, Automaatuksed, Automaatne aktiveerimine.
