Katse 7.1

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 7.2

#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);
}
Ülesanne 7.1 Rahakarp või Prügikast
Töö kirjeldus:
Tegi koos Edwardiga. Konda saab hoiupõrsasse mündi, liikumisandur loeb selle ja kuvab ekraanile “Spasibo”. Seejärel kuvatakse ekraanil “More”.
Komponendid:
Arudino Uno
Juhtmed (19)
Potentsiometr
LCD Ekraan 16×2Liikumisandur

Tööpõhimõte:
Ekraanile ilmub “Veel”, kuni hoiupõrsasse siseneb münt. Kui münt tabab, loeb liikumisandur seda ja ekraanile kuvatakse “Spasibo”.
Kuidas seda kasutada saab?
Hosupõrsast saab kasutada dekoratiivesemena, aga ka raha hoiustamiseks.
Programm:
#define ECHO_PIN 8
#define TRIG_PIN 7
#include <LiquidCrystal.h>
LiquidCrystal lcd(13, 12, 6, 5, 4, 3);
byte Smileface[8] = {
0b00000,
0b00000,
0b01010,
0b00000,
0b10001,
0b01110,
0b00000,
0b00000
};
byte SadFace[8] = {
0b00000,
0b00000,
0b01010,
0b00000,
0b01110,
0b10001,
0b00000,
0b00000
};
const char* myStrings[]={"Spasibo ", "MORE "};
int distance;
void setup() {
lcd.begin(16, 2);
pinMode(ECHO_PIN, INPUT);
pinMode(TRIG_PIN, OUTPUT);
Serial.begin(9600);
lcd.createChar(1, Smileface);
lcd.createChar(2, SadFace);
}
void loop() {
Serial.println(measure());
int intmeasure;
intmeasure = measure();
delay (200);
if (intmeasure>1 and intmeasure<10 )
{
lcd.setCursor(4, 0);
lcd.println(myStrings[0]);
lcd.setCursor(0, 1);
lcd.setCursor(5, 1);
lcd.write(1);
}
else if(intmeasure>10)
{
lcd.setCursor(4, 0);
lcd.println(myStrings[1]);
lcd.setCursor(0, 1);
lcd.setCursor(5, 1);
lcd.write(2);
delay(500);
}
}
int measure()
{
digitalWrite(TRIG_PIN,HIGH);
digitalWrite(TRIG_PIN,LOW);
distance=pulseIn(ECHO_PIN, HIGH,15000)/50;
return constrain(distance,1,300);
}