Skip to content
  • P
    Projects
  • G
    Groups
  • S
    Snippets
  • Help

dmpada / eriala-2024

  • This project
    • Loading...
  • Sign in
Go to a project
  • Project
  • Repository
  • Issues 0
  • Merge Requests 0
  • Pipelines
  • Wiki
  • Snippets
  • Members
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Files
  • Commits
  • Branches
  • Tags
  • Contributors
  • Graph
  • Compare
  • Charts
Switch branch/tag
  • eriala-2024
  • lab4
  • lab4_demo_ultrasonic
  • lab4_demo_ultrasonic.ino
Find file
BlameHistoryPermalink
  • Risto Heinsar's avatar
    restructure lab directories · 9693399c
    Risto Heinsar committed 7 months ago
    9693399c
lab4_demo_ultrasonic.ino 1.42 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
#define BUTTON_PIN             2

#define SONIC_ECHO_PIN         3
#define SONIC_TRIG_PIN         4

const uint8_t debounceDelay = 50;   

void setup() 
{
  /* Käivitame jadaühenduse */
  Serial.begin(9600);

  /* Seadistame surunupu */
  pinMode(BUTTON_PIN, INPUT);

  /* Seadistame ultraheli sisendi ja väljundi */
  pinMode(SONIC_TRIG_PIN, OUTPUT);
  pinMode(SONIC_ECHO_PIN, INPUT);
}

void loop() 
{
  if (ButtonRead()) 
  {
    float distance = GetDistInCm();
    Serial.print("Roboti kaugus objektist on: ");
    Serial.println(distance);
  }
}

float GetDistInCm() 
{
  /* Saadame ultrahelilaine välja, kestvus 10 us */
  digitalWrite(SONIC_TRIG_PIN, HIGH);   
  delayMicroseconds(10);                
  digitalWrite(SONIC_TRIG_PIN, LOW);    

  /* Loeme signaali peegeldumise aja */
  uint16_t echoTime = pulseIn(SONIC_ECHO_PIN, HIGH);
  
  /* Asenda tagastus korrektse valemiga, mille leiad andmelehelt */
  return 0.0f; 
}

bool ButtonRead() 
{
  static bool lastButtonState = LOW;
  static uint32_t lastDebounceTime = 0;
  static bool buttonState = LOW;   

  bool btnReadValue = digitalRead(BUTTON_PIN);
  if (btnReadValue != lastButtonState) {
    lastDebounceTime = millis();
  }
  if ((millis() - lastDebounceTime) > debounceDelay) {
    if (btnReadValue != buttonState) {
      buttonState = btnReadValue;
      if (buttonState == HIGH) {
        return true;
      }
    }
  }
  lastButtonState = btnReadValue;
  return false;
}