Forum Rule: Always post complete source code & details to reproduce any issue!
Results 1 to 3 of 3

Thread: Teensy 3.6 and ultrasound sensor

  1. #1
    Junior Member
    Join Date
    Feb 2020
    Posts
    9

    Teensy 3.6 and ultrasound sensor

    Hey all,
    I tried to get ultrasound sensor values using teensy 3.6 and arduino ide app...when i see the output it shows wierd values, sometimes it shows correct values...can anyone help me out from this? and one more thing is when i connect the same setup with arduino uno board it works well, it gives correct output.

    Below is my code:

    // defines pins numbers
    const int trigPin = 9;
    const int echoPin = 10;

    // defines variables
    long duration;
    int distance;

    void setup() {
    pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
    pinMode(echoPin, INPUT); // Sets the echoPin as an Input

    Serial.begin(9600); // Starts the serial communication
    }

    void loop() {
    // Clears the trigPin
    digitalWrite(trigPin, LOW);
    delayMicroseconds(2);

    // Sets the trigPin on HIGH state for 10 micro seconds
    digitalWrite(trigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW);

    // Reads the echoPin, returns the sound wave travel time in microseconds
    duration = pulseIn(echoPin, HIGH);

    // Calculating the distance
    distance= duration*0.034/2;



    // Prints the distance on the Serial Monitor
    Serial.print("Distance: ");
    Serial.println(distance);
    }

  2. #2
    Senior Member+ mjs513's Avatar
    Join Date
    Jul 2014
    Location
    New York
    Posts
    4,797
    Well you didn't mention what sonar sensor you are using so going to assume something like a HC-SR04. If that is the case you might want to use the NewPing library a shot, https://forum.arduino.cc/index.php?topic=106043.0, I tend to always use the lib for those types of sensors.

    But to your question the Uno is a lot slower than the T3.6 so you may want to add a test to see if a signal is received on pulseIN. Something like
    Code:
    while(duration == 0 && time < 100ms) duration = pulseIn(echoPin, HIGH);
    This is just pseudo-code for now.

  3. #3
    Senior Member+ manitou's Avatar
    Join Date
    Jan 2013
    Posts
    2,382
    Careful if you are using HC-SR04. I think it requires 5v and Teensy 3.6 is NOT 5v tolerant.

    pulseIn() measurements can be affected by interrupt activity. NewPing lib uses interval timer.

    https://forum.pjrc.com/threads/53537...ewPing-library
    Last edited by manitou; Yesterday at 10:38 AM.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •