+ 2
Challenge 🔊🔊Write code for arduino: the volume and frequency and beeping of a piezo buzzer increases when the....(description)
.... object comes nearer to the proximity sensor and also the vibrator motor will follow the same sequence with the piezo buzzer.(the sensor is four pin HC-SRO4)and also add a push button to start the circuit.
22 Antworten
+ 4
NEVER WIRE ANY MOTOR DIRECTLY TO YOUR ARDUINO PIN: YOU WILL PROBABLY FRY YOUR ARDUINO IF YOU DO SO.
the motor driver is only a buffer between the MCU and the motor that would otherwise fry your ATmega chip by absorbing a current (amps) that the chip is not able to supply.
Absolute Max limitations of an arduino are 40mAh (milliamps) per pin and 200mAh totally (using multiple pins).
A stalled motor absorbs inthe range of Amps usually resulting in a fried Arduino
A motor driver board allows you to control with logic level signals, the polarity of large loads (like motors)
For what you want to do, you don't need a motor driver board: a tip120 or other logic level mosfet will do the Job. For small motors (like handphone vibrators) a 2n222 transistor will also do the job.
See the wiring and the code here.
Again oomlout tutorials that you shuold read before you fry someything.
http://www.oomlout.com/oom.php/products/ardx/circ-03
To regulate the speed of the motor you'll have to adjust the PWM signal using analogWrite(pinNumber, thevspeed as a numeric value between 0 and 255).
example
analogWrite(13, 180);
Practically speaking, the same way you fade an LED.
https://www.arduino.cc/en/Tutorial/PWM
+ 2
https://www.arduino.cc/en/Reference/Map
The detectable distance ranges from 10cm to 400cm (tune the values for your sensor)
Your usable frequency (assuming you’re using an UNO board) ranges from 31Hz to 65535Hz
map function is used to do get a value in frequency, proportional to the distance measured
+ 2
sorry but i don't use the email.
My suggestion: internet is filled with arduino examples.
A nice set of beginner friendly circuits and codes, comes with the oomlout kit:
http://oomlout.com/a/products/ardx/
(no need to buy anything: just use what you already have and what can be scavanged from old electronics).
For libraries and a bit more advanced stuff refere to the Arduino reference
https://www.arduino.cc/en/Reference/HomePage
do your homework and you'll find out that everything is simplier than you think.
+ 2
Again, take a look and practice with the examples of the oomlout kit.
Once you have them working, tweak the code to see how your changes affect the behavior of the microcontroller.
Internet is full of tutorials telling you that yuo need to buy stuff: fon't do it. Get first a grip on the simple stuff and for that you can scavange components from an old PC/radio/printer/dvdplayer....
+ 2
Final advice: pls don't call me "sir";-)
+ 2
Pls read the pages i linked you: everything you need is in there:
1 reading distance
2 playing a tone
3 mapping values
If your challenged by the 3 tasks together, divide your challenge in 3 simplier and separate programs and, when you are confident about every line of code, combine them in a single program.
Good luck with your challenge.
+ 1
use the Ping and the Tone library
in the loop
check the button input to set a boolean flag.
if the flag is true execute the code in the loop
measure distance
store distance
set volume frequency accordingly
play tone
move motor
delay(better if using millis with another flag)
stop playing tone
stop motor
+ 1
if (digitalRead(inputButtonPin)==HIGH){
executeCode = true;
}
/*start measuring soundingband vibrating only aftervthe button is pressed*/
if (executeCode){
ping.fire();
frequency = map(pingCentimeters, 0, maxDistance, maxFreq, minFreq);
/*for the volume you may want to look at the pitch instead since your analog outputs are actually pwm*/
//start motor
digitalWrite(motorPin, HIGH);
//play tone
tone(buzzerPin, frequency, duration);
//stop motor
digitalWrite(motorPinLow);
}
that's a hint for what should be in the loop
i'll leave to you how ro figure out the setup and the global variables.
Below are the links to the tone and ping library pages with reference and examples.
https://www.arduino.cc/en/Reference/Tone
https://playground.arduino.cc/Code/Ping
+ 1
use
speed =map(freq, minFreq, maxFreq, 0, 255);
pls read the pages i linked you in the previous posts.
+ 1
Yes analogWrite.
avoid using delay() as it "freezes" the whole microcontroller affecting eventually also the distance readings.
start the motor
play the tone
stop the motor
you do not need delays
0
bro can you give the exact code
0
you can choose any pin on the arduino
0
is (map) a variable in the code or is it a function
0
stay in touch to discuss
0
please explain the map
0
here is my email so that we can discuss dipkaushik12@gmail.com
0
sir stay in touch I am a 13 yr old and I will need ur guidance
0
Bro pls can u declare the all the variables
0
Is there any way to increase the rpm of the motor when any object come nearer ( without motor driver )
0
bro how to match the acceleration of the motor to the frequency of the buzzer