So, I got two boards, which both need turn up the light, how should I connect them? I can't use only one board.
If either board can turn the relay on, you can "OR" the two output pins with diodes into the relay. This would also mean that one Arduino cannot turn the relay OFF if the other one is still ON.
Of course, you should use something to drive the relay -- don't hook it directly to the Arduino:
And don't forget the reversed diode across the relay coil. It will supress the spike when you turn the relay off. You don't say what relay you're using, but I am assuming it's mechanical, not an SSR (solid state relay). You wouldn't need that diode if it's an SSR.
If you need either one to turn it ON or OFF (either Arduino can toggle the light), you will have to connect the relay to just Arduino 1. Then connect the Arduino 2 to Arduino 1 with a different pin. Then Arduino 2 can signal Arduino 1 to toggle the relay. Arduino 1 can toggle the relay without telling Arduino 2 anything.
Related
I'm trying to write a simple code that sends a string to an xbee and one that sends the string back, I was able to do this with XCTU via console, but I want my arduino to send the string.
I was able to use a simple code that read my output from the serial monitor and sends it to an xbee connected via usb adapter, the problem is that I now wrote the code so it sends a predefined string like in the screenshot, but when I write into the monitor it still sends whatever I wrote instead of the static string. I'm also unable to read what I type into the xbee console from XCTU.
I'd love any assistance in this, I've tried uploading and resetting everything to no avail.
Screenshot of problem with the current code of the arduino on the left
You said you were using an Arduino to try to communicate with your XBee Zigbee module.
One thing you have to check is the connection between the TX and RX signals on the Arduino side and on the XBee Zigbee side.
I've helped someone on another forum who used this Seed Studio XBee shield :
If you look at the schematics of this shield, the XBee 'DOut' signal (Tx) is wired to the XB_TX line which can be connected to any of the AJ2 pin with a jumper.
Now on the Arduino side :
On this extract of the Arduino schematics, we can see that the ATMEGA UART has it's RX signal connected to pin 2 of the CPU which is wired to the IOL (AJ2) pin 0.
So, that means that on this shield, the jumper have to be placed between XB_TX and pin 0 of AJ2 to connect the XBee transmission signal (output) to the ATMEGA reception signal (input) [and also XB_RX have to be connected pin 1 of AJ2].
As you didn't mention what kind of shield you were using, you have to double check this point which is a common issue when using serial communication.
In a general way, ALWAYS connect 1 output to N input (except open-drain or open-collector outputs which can be connected together to make a wired OR but which finally have to be connected to N inputs)
Hope this helps
Best regards
From what I can tell on the documentation Xbee "hijacks" the serial system. Instead try blinking an LED to confirm data is being received and sent.
documentation
On Adafruit there was an example on how to connect a ledstrip to an arduino, but it said "For longer strips requiring more than 1A, wire power directly to the strip, then run power and ground wires back to the Arduino." I didn't fully understand it so i made a sketch on circuits.io . Since there isn't a normal ledstrip in there i used a RGB to show my sketch, but i can't test it. So before i fry my arduino or ledstrip can someone explain if this is correct or if it needs to be changed? Also can i connect everything on a breadboard or not, since the higher voltage and amp.
https://i.gyazo.com/27e9a6527805b6e4e898a8f32f66de61.png
That would work.
I believe this is the same as this https://learn.adafruit.com/rgb-led-strips/usage
about the breadboard it really depends on the breadboard they can vary from cheap ones 0.5A to 2A is usually the maximum current rating for a good solderless breadboard
Here are what you need:
Your Arduino.
An external power supply. Get something like this for your external power suply.
You led strip.
Connect:
PWM pulse of Arduino -> Data IN of led strip
All GND togheters
5V output of external power supply-> VCC of led strip
Computer -> USB -> Arduino
External power supplies give you high current levels, perfect for many leds. Dont worry about your breadboard melting, it should be able to handle it.
I m using pic16 to operate relay having inductive load of 20A(AC solenoid valve).
According to program When i switch on the microcontroler it will switch on relay but when solenoid switched on by relay connected to microcontroller will hang the microcontroler.
I m using 2A power supply for microcontroler and different 2A ppwer supply for relay.
The transistor needs to be below the relay.
When the transistor turns on, it connects the +12V through the relay through the transistor to GND.
Add a diode to catch the EMF voltage when the transistor turns the coil on and off.
There's a good circuit here.
Here is one useful tutorial:- https://electrosome.com/interfacing-relay-with-pic-microcontroller/
Also make sure you have common ground for your two different supply of 5 and 12v.
I'm working a little project where I make my own version of serial communication between 2 arduino megas using their digital I/O pins.
So there are a couple digital pins on arduino A that are set as output. These are plugged into two digital pins in arduino B which are set as input. Is there a way for arduino B to detect whether the output pins coming from arduino A are high or low?
I know this can be done with transistors, but is there a way to do it without them?
The digital pins from one Arduino can be connected directly to the digital pins on the other - no need for any transistors in between. Make sure there is a common ground between them so both boards are at the same reference level (connect the GND pins, or power both from the same supply).
You can read the digital pins on the receiving end by calling digitalRead(), and write to the digital pins on the sending end by calling digitalWrite(). Whatever protocol you implement will need to detect the high/low transitions and decode them accordingly.
I guess I'm curious why you wouldn't just use the built-in serial ports to communicate, unless this is just a learning exercise? Certainly worthwhile for learning, but unnecessary extra work otherwise...
I am using a 1 channel relay module for arduino uno r3 like this(the picture shows 2 relay module but i only use one relay for one bulb), http://www.geeetech.com/wiki/index.php/2-Channel_Relay_module.
The bulb is 220V.I connected my arduino pins, D13,Ground,and VCC to relay module's pin; Input,Ground,and 5v.I also cut my bulb's wire to connect it on my relay's pin: NC,NO,COM.One cut end of the bulb was attached to the COM and The other is to NO.The other wire of the bulb leaved uncut.The source of the bulb is Direct current.
I uploaded the Blinking codes in arduino uno r3.
After uploading the code, Relay module followed the arduino's code which is blinking.The thing was, The bulb wont follow.I also tried dis arranging some wires but nothing happens.
I read some of the articles that would possibly solve my problems.I found out that they are using SSR.Is this really needed?and what could I do to make the bulb follow the arduino's codes.
I need Help. Please..help me
If your relay is being energized then that side of the wiring is good, it's something on the other side that is wrong.
The output of a relay does not provide power, it is just a switch. You need to create a circuit that goes from power, through the relay, through your lamp, and back to power. If you connect to COM & NO then the lamp lights when the relay is energized; if you connect instead to COM and NC then the lamp lights when the relay is not energized.
The diagram on that relay site is a little misleading. For your purpose, try running the light bulb from the +5V pin on the Arduino, to the NO relay contact terminal on the relay board, and then grounding the COM relay contact terminal. This should work assuming:
1.) Your wiring TO the relay board is correct AND sufficient enough to operate the relay, specifically, you can hear it "click" every time the Pin 13 goes LOW/HIGH from the Blink sketch.
2.) The 220V rated bulb can actually operate at 5V.
If the bulb needs more than 5V, simply replace the wire going from the bulb to the +5V pin, with a higher voltage battery (make sure you attach the negative terminal of that battery to one of the Arduino Gnd pins).
The wiring diagram contains a lot more information than you need.
The relay module has a TTL interface - VCC, GND and one signal per relay to switch it on/off. These you should connect to the coresponding pins on your arduino(as you probably did).
Each of the relays have three screw terminals
When you switch the relay ON, two of those terminals will be connected through the relay NO-COM
When you switch it off, the relay will disconnect the other pair and connect COM-NC
The relay works as a switch, the lightbulb will be connected to the power as normal, but one of its wires(NOT the ground for safety reasons!) will be interrupted and the ends connected to the relay terminals.
BTW:
Both the relay and lightbulb are limited in how fast they react to switching, the relay takes time to switch(cca 3 - 20 ms) and the lightbulb has a large thermal inertia. If you are trying to blink really fast(more than lets say twice per second, you might have problem with that.
SSR are useful mainly for fast switching(normal relays have a limited speed) and should have longer lifetime, you can use it(it usualy has a 5V control input), but it seems pointless for a lightbulb.
220V light bulb will not operate on 5V
Could you explain
The source of the bulb is Direct current.
Power plug 220V is actualy AC.
What is actualy happening? Is the lightbulb ON or OFF permanently? Is it blinking in some wrong way?