My arduino printing garbage

i'm using a lolin(wemos) d1 r2 mini

here is the code

#include <Ultrasonic.h>

#set TRIGGER_PIN 6
#set ECHO_PIN 7

Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN);

void setup() {
Serial.begin(9600);
Serial.println("Reading sensor data...");
}

void loop() {
long microsec = ultrasonic.timing();
float distanceCentimeters = ultrasonic.convert(microsec, Ultrasonic::CM);
Serial.print("Distance in cm: ");
Serial.println(distanceCentimeters);
delay(1000);
}

simply this is to print �����!��D�9;��9��h,����fL����@H�80����0��?)�6!���9��U�.�JC�����!���)9;��9K$jBC.���!9�DŇ!9�DŇ����h0�8�?�FJ

what should i do ???

  • Did you set the Serial monitor to 9600 baud ?

What is your serial monitor configuration?

Serial.begin(9600) ???

I really don't know, it's my first time working with this on linux ubunto and my first time with a sensor and arduino, how can I know the serial monitor?

can you fit the code I made?

IMG_2913

but it's already at 9600

Imagem do WhatsApp de 2024-05-24 à(s) 17.39.43_50168386

  • Show us your wiring and schematic.

  • Try this sketch.

/*
  HC-SR04 Ping distance sensor:
  VCC to arduino 5v
  GND to arduino GND
  Echo to Arduino pin 7
  Trig to Arduino pin 6

  This sketch originates from Virtualmix: http://goo.gl/kJ8Gl
  Has been modified by Winkle ink here: http://winkleink.blogspot.com.au/2012/05/arduino-hc-sr04-ultrasonic-distance.html
  And modified further by ScottC here: http://arduinobasics.blogspot.com.au/2012/11/arduinobasics-hc-sr04-ultrasonic-sensor.html
  on 10 Nov 2012.
*/


#define echoPin 7 // Echo Pin
#define trigPin 6 // Trigger Pin
#define LEDPin 13 // Onboard LED

int maximumRange = 50; // Maximum range needed
int minimumRange = 10; // Minimum range needed
long duration, distance; // Duration used to calculate distance

void setup()
{
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(LEDPin, OUTPUT); // Use LED indicator (if required)
}

void loop()
{
  /* The following trigPin/echoPin cycle is used to determine the
    distance of the nearest object by bouncing soundwaves off of it. */
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);

  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);

  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);

  //Calculate the distance (in cm) based on the speed of sound.
  distance = duration / 58.2;

  if (distance >= maximumRange || distance <= minimumRange)
  {
    /* Send a negative number to computer and Turn LED ON
      to indicate "out of range" */
    Serial.println("-1");
    digitalWrite(LEDPin, HIGH);
  }
  else
  {
    /* Send the distance to the computer using Serial protocol, and
      turn LED OFF to indicate successful reading. */
    Serial.println(distance);
    digitalWrite(LEDPin, LOW);
  }

  //Delay 50ms before next reading.
  delay(50);
}

It does not print show the line

Reading sensor data...

tells that the serial connection is not the same at both ends.

Would you show a picture of the Arduino (top and bottom)? Is anything metallic touching pins 0 and 1?

here

Wemos D1 Mini only likes a baud rate of 74880

(oddly enough this "printing garbage" link is using the EXACT same sketch)

Remove the ultrasonic sensor and re-upload the sketch (Do not re-connect the ultrasonic sensor, leave it disconnected). Does it print normal then?
if yes -> something to do with ultrasonic sensor -> wemos D1 R2 is 3.3v logic, but the ultrasonic sensor is 5v. Not sure if it's messing up the wemos D1 R2.

if no ->

  • try a different baud rate
  • check your drivers are the correct ones

Are you sure it isn't the boot data you're looking at, which comes in at 74880 baud.
Set the serial monitor to 74880 to see it :slight_smile:
Leo..

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.