Should I be able to hear the buzzer on the Orion for XY-Plotter?


#1

Ok, I’d like to get the buzzer to sound and could not. So I added in a program I know works which blinks the led. Here goes…

#include <Makeblock.h>
#include <SoftwareSerial.h>
#include <Wire.h>

int ledPin =  13;    // LED connected to digital pin 13

void setup() 
{
    pinMode(ledPin, OUTPUT);   
}

void loop()
{
  digitalWrite(ledPin, HIGH);   // set the LED on
  buzzerOn();
  delay(1000);

  digitalWrite(ledPin, LOW);   // set the LED off
  buzzerOff();
  delay(1000);
}

I load the program, the led blinks, but I hear nothing.


#2

I have never heard mine. I believe there is a switch on the board to turn it on or off. If you look back through posts from about this time last year you will find a lot of people complaining about the buzzer noise so I suspect Makeblock now ship the motherboards with the buzzer turned off by default.

ETA after using a web service called “GOOGLE” and typing “makeblock buzzer” into the search field, about the third hit turned up a long post about the buzzer, and in amongst the posts I found

“Switch the buzzer off using the switch next to the reset button on the board.”

:slightly_smiling:


#3

“Switch the buzzer off using the switch next to the reset button on the board.”

Ha! I tried that about two hours before I posted my question. Does nothing. :frowning:


#4

I could not find a single post on the first page of google (which I DID use before posting here) which was of any help. A very good youtube video showed exactly what I was doing, with the exact same code and I heard the buzzer on the video.

The code I got to sound the buzzer came from the MakeBlock pages. If I can’t believe that what can I believe?

(Nothing I suppose. I left them a message 7 days ago, not a peep from them)


#5

I just tried your example, both with and without the blinking led code, and it works fine on my Orion. Moving the switch for the buzzer up cancels the noise, and down makes it resume. Just so as you have covered all the possibilities, try using the reset button to reset the Orion, and if it still won’t work, you may have to consider the motherboard has a fault.


#6

I notice in another thread about your not being able to find Makeblock.h that you have possibly downloaded a more recent version of the Makeblock library than I am using. I wonder if you should be using “MeOrion.h” instead of the three includes at the head of your file? The only other thing I can think of apart from your having a faulty motherboard is that your call to the buzzer routines is failing due to some revisions in the new header files and library code.


#7

Unfortunately the workng week has started so I’m not infront of the machine at the moment. But thanks for your suggestions. I’ve noticed that there are two different defines for buzzerOn depending on the board type. When I have time I’ll investigate further.


#8

Well, some sort of mystery resolved. I looked in the Orion sources and found that the buzzer stuff is defined like this:

#define buzzerOn()  pinMode(SCL,OUTPUT),digitalWrite(SCL, HIGH)
#define buzzerOff() pinMode(SCL,OUTPUT),digitalWrite(SCL, LOW)

I took the board off of the XY-Plotter, looked on the back and found the SCL pad. And my program waggles it up and down as would be expected. I hoped that the other two pins indicated in the image were the buzzer, but there is no life in there.

.

Either the buzzer is dead, or the connections have been removed and it’s there like a useless appendix…


#9

I noticed a click when I used your original code. So i tried putting a loop around the on/off.
Problem solved loud beep now.

void buzz(int duration)
{
pinMode(SCL,OUTPUT);
for (int i = 0; i < duration; ++i) {
digitalWrite(SCL, HIGH);
delayMicroseconds(500);
digitalWrite(SCL, LOW);
delayMicroseconds(500);
}
}


#10

Thanks for the post.


#11