Katse 7

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×2

Liikumisandur

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);
  

}