I have a projector, which I love, but my wife wishes it could be hidden when not in use. And since I live in a one-story and have easy access to the attic, I thought a projector lift would be quite doable.
I've never used an arduino before, but I'm eager to play and learn. But I was first hoping to get some guidance on what to purchase.
I think I'd like to use a linear actuator (that can lift at least 35 lbs and extend 14") to move the lift up and down, but I want it activated from the 12v trigger output from my projector. I don't know anything about what kind of signal is sent, but it's some kind of open industry standard since lots of devices support trigger inputs and outputs.
So projector turns on, lift comes down. Projector turns off, lift goes up. Simple.
Arduino micro, I was thinking. An H bridge driver, though I don't know which (there seem to be a lot). And an actuator that provides feedback (don't know which of these either).
I'm sure i'll have tons of questions later about how to make it all work, but for now, I was hoping to get suggestions about what to purchase.
Your mechanism is a more difficult challenge than the arduino.
You can do the switching itself with any arduino. I use a mega for prototyping and quite often attiny85's for the final project.
A good relay board is cheap and safe (if you add fuses your 110v or 230v system)
Is there a lot of insulation on the floor of the attic? If you make a hole in that for the lift, a lot of heat will escape from the room below. Also that will become a cold spot on the ceiling of the room and you could get condensation problems. One obvious solution to all this would be to make a box that fits over the lift in the attic and insulate that on the outside, sealing the insulation layer.
But you might then have the problem of the projector overheating. The fans stay on after the light goes off in many projectors, to remove all the heat of the bulb. If the projector is inside an insulated box, it might be unable to cool itself. So a delay of a few minutes might be needed after the projector goes "off" before the lift ascends.
Your lift mechanism will need some way to detect when the platform has reached the top and bottom of the travel. For example microswitches or magnets and reed switches. This will allow the arduino to cut the motor power when the limit is reached.
PaulRB:
Is there a lot of insulation on the floor of the attic? If you make a hole in that for the lift, a lot of heat will escape from the room below. Also that will become a cold spot on the ceiling of the room and you could get condensation problems. One obvious solution to all this would be to make a box that fits over the lift in the attic and insulate that on the outside, sealing the insulation layer.
Just as you suggest, I plan to enclose the entire lift in an insulated box, so this shouldn't be much of an issue.
PaulRB:
But you might then have the problem of the projector overheating. The fans stay on after the light goes off in many projectors, to remove all the heat of the bulb. If the projector is inside an insulated box, it might be unable to cool itself. So a delay of a few minutes might be needed after the projector goes "off" before the lift ascends.
Again, as you suggest, I'll likely have the arduino impose a one or two minute delay so the cooldown of the bulb has some time.
PaulRB:
Your lift mechanism will need some way to detect when the platform has reached the top and bottom of the travel. For example microswitches or magnets and reed switches. This will allow the arduino to cut the motor power when the limit is reached.
I've seen actuators that have additional leads to provide positional feedback, so I think I have this part covered. This one, for example.
I'm really lost on what kind of driver to get so I'd love suggestions on that. And I haven't found any information on the 12v trigger, so I'm hoping someone else out there has played with it and can tell me this is possible.
A couple of relays is an easy way, given they will only get actuated a couple of times per day. They just need to be SPDT. If you buy a relay board that will have driver transistors and flyback diodes built in, but if you build your own board, don't forget those.
I offer a relay shield for an Uno that can do this. Can be populated with up to 8 SPST relays that can be controlled like the 4 transistors of an H-bridge. Has some prototyping area as well if you want to install some other parts, and can have additional screw terminals added for connecting to offboard limit switches if you don't want to solder them to the board.
Relay control is thru a TPIC6B595 shift register, very easy to use.
CrossRoads:
I offer a relay shield for an Uno that can do this. Can be populated with up to 8 SPST relays that can be controlled like the 4 transistors of an H-bridge. Has some prototyping area as well if you want to install some other parts, and can have additional screw terminals added for connecting to offboard limit switches if you don't want to solder them to the board.
Relay control is thru a TPIC6B595 shift register, very easy to use.
I'm a SQL developer, but I'm ashamed to say the language you're speaking is totally foreign to me. I'm eager to learn. Crawl, walk then run, as they say. My problem, I'd say, is that I don't know what I don't know.
I need an arduino, the actuator, 12v power supply (do I need one for the actuator AND the arduino?) and some kind of relay/h-bridge driver board. You mentioned a shift register and I start getting cold sweats. Which is a simpler concept for an idiot like me to grasp, using 8 SPST or 4 SPDT? Dumb it down for me, brother.
I realize I'm probably starting with something pretty ambitious. When I get all the stuff, I'll certainly go through a million tutorials to learn how to do everything. I just want to know what I'll need to purchase to do the final project.
I'm at least encouraged that this sounds feasible. Hoping the projector's 12v trigger is some kind of analog pulse the arduino can interpret.
The coil drivers will be transistors in the shift register.
In this example, 1 = an on transistor, and 0 = off. Bits 0,1,2,3 will be the four relays.
digitalWrite (ssPin, LOW);
SPI.transfer(0b00000011); // data for relays AB
digitalWrite (ssPin, HIGH); // shift register outputs change, relays turn on
while (digitalRead(upSwitch == HIGH){
// wait for it to go low
}
// now turn off the motors
digitalWrite (ssPin, LOW);
SPI.transfer(0b00000000); // data for relays AB
digitalWrite (ssPin, HIGH); // shift register outputs change, relays turn off
Do similar to move the other direction:
digitalWrite (ssPin, LOW);
SPI.transfer(0b00001100); // data for relays CD
digitalWrite (ssPin, HIGH); // shift register outputs change, relays turn on
while (digitalRead(downSwitch == HIGH){
// wait for it to go low
}
// now turn off the motors
digitalWrite (ssPin, LOW);
SPI.transfer(0b00000000); // data for relays CD
digitalWrite (ssPin, HIGH); // shift register outputs change, relays turn off
Andrew, when you get your Arduino, you can do some simple tests on this 12V trigger using an Arduino input to detect changes in the signal. Only problem is 12V would damage the Arduino. So you need to reduce the 12V down to 5V using a "voltage divider". This is simply two resistors like 4K7 and 6K8. The trigger output will have a ground which must be connected to the Arduino ground. The 4K7 goes between the Arduino input and ground and the 6K8 between the Arduino input and the 12V trigger line. This will reduce the 12V signal down to 12x4.7/(4.7+6.8 )=4.9V
Yes, you can run the Arduino off the same 12V supply via its barrel connector or Vin connector. The power supply must have more than enough current for the motor, otherwise the voltage it outputs will drop when the motor is started, this could cause the Arduino to reset.
You guys have been helpful, thanks. It's not fair to you that I have no idea what I'm doing, though. I wanted to jump in with both feet and have you tell me exactly what to purchase, but I think it would be better to learn the language a bit better first.
I'll buy one of those arduino starter kits, get comfortable with the lingo, and stop back when I'm ready to proceed.
This is a great post and pretty much the exact same as what I am doing... and having the same dilemma in relation to the 12v trigger into the Arduino.
PaulRB - I've just gone out and purchased a 4k7 and 6k8 and was reading your instructions again and wanted to make sure I have the understanding right so I put together 2 drawings and just wanted to confirm which was the correct way to implement the voltage divider... I'm guessing the bottom one?
Appreciate the swift response... apologies for the crude drawing and lack of clarification. To be honest, I understand the concept but I don't know how to implement your drawing. I've redone my crude drawing with some explanation...
Option 1
12v Trigger has 2 wires
1 wire goes to the 6k8 and then the Arduino input pin (D0)
The other wire goes to the 4k7 and then the GND on the Arduino
Option 2
12v Trigger has 2 wires
1 wire goes to the 6k8 and then the Arduino input pin
The other wire goes to directly to the GND on the Arduino
The 4k7 is wired from the Arduino input pin (D0) to the GND
If I had to guess, I would say you have "got it" and option 2 appears "less wrong".
You need to learn to draw circuit schematics properly if you want others to understand and feel able to give you confident answers. For example you show a single 12V wire splitting into two and connecting directly to the Arduino output and to ground. If taken litterally this means the Arduino input is grounded and always reads LOW. Also your diagram appears to show a resistor internal to the Arduino, between its input and ground, which doesn't exist in reality (most Arduino like Uno have internal pull-up resistors but not pull-down).
Also, don't use D0. Or D1. They are used for communication with the PC on most Arduino.