Controlling a Bell

I want to control a bell with an arduino. Here is my current setup

The Bell rings continuously when connected to a battery. How would I connect it to the arduino to be able to control it? The voltage booster requires 4-5V so I will probably move the dial to the 3.3V pin and connect the voltage booster to the 5V but other than that how would I proceed?

You should not attempt to power the bell circuitry from the Arduino. Doing so could overload the regulator or damage the Arduino. Instead, control the bell (that is, the 5 to 12 V boost circuit in your diagram) just like you would a motor, with a transistor switch or a motor driver and using a separate power supply. If that power supply is 12V, that eliminates the booster.

What does that Inhibit wire do?

jremington:
You should not attempt to power the bell circuitry from the Arduino. Doing so could overload the regulator or damage the Arduino. Instead, control the bell (that is, the 5 to 12 V boost circuit in your diagram) just like you would a motor, with a transistor switch or a motor driver and using a separate power supply. If that power supply is 12V, that eliminates the booster.

It has to be somehow connected to the shield/arduino otherwise it can’t be activated when a call is received. Which I haven’t figured out how I’ll do yet but I know it’ll be through the gsm. Also I would prefer that a single battery/ps be used. The current it draws is said to be up to a peak of 75mA or 10mA depending upon when you ask.

jremington:
What does that Inhibit wire do?

I dunno it just was there. I assume if powered it would silence the ringing. I think maybe it would be better to find some solution that used as little power as possible though. Possibly by turning power on and off to the ringer circuit?

It has to be somehow connected to the shield/arduino otherwise it can't be activated when a call is received.

Obviously. A port pin is needed to control the transistor switch or motor driver, just as it is when you are controlling a motor or a solenoid. If you don't know how to do that, here is a place to start (many of the motor tutorials are wrong or misleading): http://www.martyncurrey.com/?p=152

You should personally verify the current drawn by the bell circuitry, including the booster, with a multimeter. Believing what you read can be expensive. If the current drawn is much greater than about 100 mA you should not use the 5V output of the Arduino to power it.

That inhibit wire looks like the solution. Do you have any more info on the Ring Generator?
I would assume that this inhibit wire is a low power solution you are looking for, while being exactly what the designer of the ring generator intended it to do.
I’m guessing here, but ground (or perhaps 12V) to that wire would probably silence the bell. If you don’t have a datasheet, take it apart and try to figure out which.

I don't think the current draw for the bell is more than 100mA. I'm not sure how much current is already drawn by all the other devices in the diagram though, although things work fine so far.

Here are three ways I'm thinking of proceeding. Any suggestions/mistakes? Not really sure how exactly the inhibit wire works so its theoretical. BTW ring generator is powerdsine in case anybody wants to see if they can find info thats eluded me.

I would try to learn more about the inhibit before connecting it to the arduino directly. Put a meter on it to ground and check the voltage. Since the generator is powered by 12V the inhibit may be at that level. It could be a dry contact (for a switch). Also I am cncerned about the 7V supply to the Arduino power jack. There is a diode between the power jack and the 5V regulator, to prevent reverse connection damage, so the voltage at the regulator is about 6.3V which isn't enough (The regulator needs about 2-2.5 volts above 5V to work right). It may work better to go to Vin, bypassing the diode. Until you know more about the inhibit I would go with switching the power to the ring generator.

groundfungus: I would try to learn more about the inhibit before connecting it to the arduino directly. Put a meter on it to ground and check the voltage. Since the generator is powered by 12V the inhibit may be at that level. It could be a dry contact (for a switch). Also I am cncerned about the 7V supply to the Arduino power jack. There is a diode between the power jack and the 5V regulator, to prevent reverse connection damage, so the voltage at the regulator is about 6.3V which isn't enough (The regulator needs about 2-2.5 volts above 5V to work right). It may work better to go to Vin, bypassing the diode. Until you know more about the inhibit I would go with switching the power to the ring generator.

I think I will go for the 3rd solution with the transistor first because I don't want to get a second voltage booster for the inhibit wire. Are the connections okay in the diagram? Which transistor should I use? How should I set the code to switch it from block to not blocking the ringer? I think it won't be a problem to switch the PS to a higher voltage but I'd have to run both the ringer and the rest of the devices from the same battery. would running two wires from the batteries terminal be equivalent to running two things in parallel?

What if you used a servo motor to ring the bell whenever you received a call, you could control the motor in the program using the servo library which would only take up one pin

Obviously. A port pin is needed to control the transistor switch or motor driver, just as it is when you are controlling a motor or a solenoid. If you don’t know how to do that, here is a place to start (many of the motor tutorials are wrong or misleading):

A servo is simple to wire, here is an example

arduinopost.tiff (107 KB)

2007jingz:
What if you used a servo motor to ring the bell whenever you received a call, you could control the motor in the program using the servo library which would only take up one pin

Obviously. A port pin is needed to control the transistor switch or motor driver, just as it is when you are controlling a motor or a solenoid. If you don’t know how to do that, here is a place to start (many of the motor tutorials are wrong or misleading):

A servo is simple to wire, here is an example

Unless I’m mistaken I don’t need a servo. The bell is already wired to ring and will do so continuously connected to a battery. All I need is to determine a proper transistor switch and if the parallel wiring I have shown is correct and possible.

2007jingz:
What if you used a servo motor to ring the bell whenever you received a call, you could control the motor in the program using the servo library which would only take up one pin

Obviously. A port pin is needed to control the transistor switch or motor driver, just as it is when you are controlling a motor or a solenoid. If you don’t know how to do that, here is a place to start (many of the motor tutorials are wrong or misleading):

A servo is simple to wire, here is an example

It looks as if he’s trying to emulate a telephone bell, not a single ‘ping’ bell, which is what a servo will give him.

jarwulf:
I don’t think the current draw for the bell is more than 100mA. I’m not sure how much current is already drawn by all the other devices in the diagram though, although things work fine so far.

Here are three ways I’m thinking of proceeding. Any suggestions/mistakes? Not really sure how exactly the inhibit wire works so its theoretical. BTW ring generator is powerdsine in case anybody wants to see if they can find info thats eluded me.

Why are you connecting your dial to the GSM sheild? The Arduino alone is capable of detecting the dial pulses.

Here are three ways I'm thinking of proceeding. Any suggestions/mistakes?

The third way will in principle work, but the drawing has two critical mistakes. First, the transistor is on the wrong side of the power supply (it needs to be a "low side" switch) and second, you must have a resistor between the port pin and the transistor base. Again, you should study and follow the general approach outlined in the following link or you will destroy some circuitry (including possibly your Arduino): http://www.martyncurrey.com/?p=152

jremington:

Here are three ways I'm thinking of proceeding. Any suggestions/mistakes?

The third way will in principle work, but the drawing has two critical mistakes. First, the transistor is on the wrong side of the power supply (it needs to be a "low side" switch) and second, you must have a resistor between the port pin and the transistor base. Again, you should study and follow the general approach outlined in the following link or you will destroy some circuitry (including possibly your Arduino): http://www.martyncurrey.com/?p=152

Alright how about this one?

Are there any unnecessary parts? Also are there any parts I need to add anywhere in the diagram? For example I'm wondering if there needs to be a resistor between the voltage booster and the ring generator. I'm not too sure about the blue parts, is it a good idea to ground the battery to the arduino like that?

Henry_Best:

jarwulf: I don't think the current draw for the bell is more than 100mA. I'm not sure how much current is already drawn by all the other devices in the diagram though, although things work fine so far.

Here are three ways I'm thinking of proceeding. Any suggestions/mistakes? Not really sure how exactly the inhibit wire works so its theoretical. BTW ring generator is powerdsine in case anybody wants to see if they can find info thats eluded me.

Why are you connecting your dial to the GSM sheild? The Arduino alone is capable of detecting the dial pulses.

The gsm covers the ports of the arduino.

jarwulf:

Henry_Best: Why are you connecting your dial to the GSM sheild? The Arduino alone is capable of detecting the dial pulses.

The gsm covers the ports of the arduino.

So you're connecting the dial to pin 2 of the Arduino through the GSM shield. There's no electrical connection to the GSM sheild, just a pass-through. You should show it, in your schematic, as being connected to pin 2 of the Arduino, for clarity.

Henry_Best:

jarwulf:

Henry_Best: Why are you connecting your dial to the GSM sheild? The Arduino alone is capable of detecting the dial pulses.

The gsm covers the ports of the arduino.

So you're connecting the dial to pin 2 of the Arduino through the GSM shield. There's no electrical connection to the GSM sheild, just a pass-through. You should show it, in your schematic, as being connected to pin 2 of the Arduino, for clarity.

okay, I thought the arrow would work but I'll make it more explicit next time. What do you guys think of the latest version of the connections I made?

Here is a revised schematic with code. Is it good to go?

//RINGING CODE

int ringPin = 4                 // transistor connected to digital pin 4

void setup()
{
  pinMode(ringPin, OUTPUT);      // sets the digital pin as output
}

void loop()
{
  digitalWrite(ringPin, HIGH);   // sets the ring on
  delay(2000);                  // waits for two second
  digitalWrite(ringPin, LOW);    // sets the ring off
  delay(4000);                  // waits for four seconds
}