I'm actually really not sure about this, but how can I create a no moving parts button. As in when I send a certain byte using the Serial.read() it will connect two channels for about a second then close the connection.
*Sorry
I am using a Ardunio mega board. (Can't tag it because the tag doesn't exist)
I think you want to use a transistor as a switch. Connect an Arduino pin to the base and you can switch it on and off using digitalWrite(). I don't think this can be done completely without hardware. But a transistor does not have any moving parts at least.
Related
First Thanks in advance.
Is there a way for an Arduino board to detect what other boards are attached (such as infrared, or servo motor etc) or simple things such as led or push buttons? Basically is there a way to do Plug N Play?
I would like to design a system using an Arduino were the user can mix and match infrared sensors, motors, led. The script would recognize what is attached to the board and respond accordingly. Currently one is forced to hard code in the script identifying what pin is attached to what. Hence if the user pulls out a servo motor and adds an infrared, then the script must be rewritten. This is what I want to avoid.
Thanks.
You started with
user mix and match sensors, motors, led. The script would recognize
what is attached
and later added
Arduino for model railroads, to dynamically add servos, lights and
sensors
These are not the same, narrowing the scope makes all the difference. See my comment for first option. As for building a specific model that will recognize elements, sure, this can be done in couple of ways depending on the topology you intend to implement and in that case the main concern should be:
How will elements/nodes be connected to each other and / or the main board?
If you intend to run seperate wires for each element you could identify them by dedicating one wire for ID and use a different resistor on each, That's complicated and limited and I wouldn't do that.
On the other end you could create a parallel bus that runs from node to node and can be extended as needed, it will have a small number of wires that will implement I2C for instance, and for identification but also as local drivers you would add an ATtiny on each node.
I'm trying to find a fitting module/component for a project, but have a hard time finding the right thing.
I need a PWM module/component that can provide a PWM signal and can be controlled via Arduino, preferably TX/RX.
I've used this one previously, and it works great, but it is bulky due to the screen and buttons which I don't really need.
It would be perfect to find the same module but without the screen and buttons.
What it needs to do:
Duty cycle 0-100%
Frequency 1-10 kHz
5 V preferably
Communication via tx/rx or other Arduino compatible protocol
1-2 channels
As small as possible
I've seen some Adafruit modules, but they have at least 16 channels which is not necessary. Would also work, but if I can find an even smaller alternative that would be great.
Any suggestions?
(And no, the Arduino's PWM signals do not work in my case.)
The standard Arduino analogWrite() can't do what you want without trickery, but most Arduino hardware can, so there's no real need for a separate PWM IC or module; you just need to code the Arduino's MCU's timer peripheral to do what you want.
You can do that "by hand", but I would try first to see if an alternative library like TimerOne can get you the PWM you specify. For SAMD21-based Arduinos there is this library (that I wrote), among others.
If you insist on having a separate module for your PWM, just google around (modules exist, but recommendations are not done here), or simply use a second Arduino of your choice as a dedicated PWM generator.
I'm trying to detect whether a key is pressed down or not.
I have a digispark connected to a rotary encoder that together form a volume control wheel. The thing is I want to change what rotating the encoder does without hard coding it, so i made a program in c# that communicates with the Arduino with the unused keyboard keys f13-f14, but if I hardcode those keys instead of the volume keys.
When I plug in the device in a computer that does not have the program the Arduino is useless. So I needed to find a way to communicate with the Arduino and tell it the program is there. This was hard because the digispark has no serial support.
But what if I use those unused keys, let's say f15 as a Boolean. I need code for the digispark(which is basically an Arduino) to find out whether f15 is held down or not(true or false).
I am doing a class project involving an Arduino Uno and a Picaxe 14m2.
I am in the middle of attempting to code a program for the Arduino Uno that will allow me to send and output value to the input on the Picaxe.
So in layman's, this is what I wish to achieve:
I want the Arduino to check a sensor, and if the sensor returns a specific value. (- I know this part, but not the next.) I then want the Arduino to send a value (HIGH, or 1 .. something like that) as an output to one of the Picaxe input pins. I then need the Picaxe to notice a value has been sent, and then do something else.
Any help would be appreciated.
Thanks.
If you are looking for that, you may want to specify what kind of PICAXE you have.
Since there is a difference in the types of these chips.
After that you may wanna look over the datasheet of the PICAXE so that you can find the instructions set and the type of program memory you have, "EEPROM....".
After that:
List your Is/Os, inputs and outputs.
Set your source code editor.
Write the source code and burn it to the PICAXE program
memory.(C, Assembly...)
Write your Arduino code, setting the Is/Os and telling the
Arduino how to deal with the signals in and out.(C language)
Make a circuit diagram for the hardware you are going to connect
between both chips.
Don't forget to see the loading effects on both the Arduino and
the PICAXE, because you don't want to burn your project hardware
after all.
Test your project and note that you will have to troubleshoot
both software and hardware whenever a problem occurs.
I suggest that you use the Oscilloscope to test the signals going in or coming out of both circuits + the sensor's signal.
For any extra thing you need the PICAXE to do, use If statements, because they are not so technical to implement and they are easy to write and troubleshoot.
For your scheme, you are actually making the Arduino give instructions to the PICAXE through a variable signal coming from a sensor.
^send me feedback and I will help more.
You will probably want to look into using UART (aka Serial) or i2c communication.
Serial communication should work with any PICAXE and Arduino, While i2c Will only work if you are using the X2 Series PICAXE Chips. i2c's main advantage is when using multiple slave devices (plus the master device, i.e. more than just 2 devices total) in which you can use the same two wires for up to around 128 devices. Serial (UART) communication is simpler, and only needs one wire (plus a common ground) to send data one way, it is what i'll show for the rest of this answer
Here is the manual entry for serial input for the PICAXE, and Here's the entry for serial output from the Arduino. The code you will need given your question will be something like the following:
For the arduino:
void setup(){
Serial.begin(9600);
}
void loop(){
if (conditionMet){ //whatever the condition is in your code
int bytesSent = Serial.write(“HIGH”); //send the string “HIGH"
}
}
and for the PICAXE:
main:
serin 6, T9600, ("HIGH") 'uses qualifier to look for exact message "HIGH"
'do whatever when criteria met
goto main
Hi im new to Arduino Uno
My question is how to turn a stepper motor 90 dgree clockwise only when the infrared censored a something and turn anti-clockwise when the second infrared censored something is pressed again?
Stepper motor
Infrared transmitter/receiver pair
your help will be much appreciated
Thanks
Software and hardware my friend, software and hardware.
First, you'll need to connect your sensors to the Arduino and make sure you can read them reliably. You can write a sketch that outputs the values to the serial port and monitor them on your computer.
Second, you'll need to connect your motor. A stepper motor is going to need a driver, such as the "Adafruit Motor/Stepper/Servo Shield for Arduino v2 Kit" (link). This kit has sample code you can use to figure out how to drive the motor.
Then you'd connect these two independent pieces together. Write logic that puts the motor in one position when your sensor is sensing, and another when it's not, or use your second sensor to make the second motion.
Note: Stepper motors and the drivers are expensive and maybe not what you really want. For one thing, they use relative motion, not absolute position. If they miss steps (due to hitting something or being manually moved) then they remain in the wrong position until you fix them.
A cheaper and perhaps better solution is to use a hobby servo. They are cheap and use absolute positioning, which means that when you tell them to go somewhere they will always try to get to that position. Also, you can drive them directly from the Arduino without a driver board. One of the built-in Arduino sketches shows how to run them.