Capacitive Touch Arduino Lamp

Google+ Pinterest LinkedIn Tumblr +

Programming a standalone chip may be complicated the primary time you do it. There actually aren’t that many directions round on find out how to do it. This is doubly true with the Arduino UNO SMD model. Most directions inform you to take away the atmega168 chip from the board. If you’ve gotten the SMD chip, you’re out of luck. If you’ve gotten the DIP model, I’d warning you in opposition to repeatedly eradicating the chip from the DIP socket.Remove the chip sufficient instances, and you’re more likely to break off a few legs out of your arduino chip, which might be fairly inconvenient.

The purpose you are supposed to take away the chip from the arduino board is as a result of when the programming TX/RX begins, the arduino chip resets. This reset desynchronizes the standalone chip from the programming board, which then causes an add failure. The work round is easy.

 Programming a Standalone Chip
1) Wire up the standalone chip, as per the final step.
2) Attach a 20uF capacitor between the RESET and GND pin on the Arduino board. Make certain the constructive leg of the capacitor is related to the RESET pin and the detrimental leg is related to a floor pin. This step prevents the arduino from resetting in the course of the add course of.
three) Make certain LilyPad arduino w/ atmega 168 is chosen underneath instruments>Board. Make certain Arduino as ISP is chosen underneath Tools>Programmer.
four) Copy and paste the arduino code into the Arduino IDE
5) Click File>Upload Using Programmer.
6) Cross your fingers and pray to the breadboard Gods that you do not have a free wire.
7) Dance with jubilation since you now have a standalone atmega chip programmed to do what you need it to do.

I used the capsense instance discovered within the arduino libraries and modified it to answer a number of touches. I included fade, as a result of I do not like sudden brightness adjustments (and it simply seems to be a lot cooler)

THE CODE//Just Copy and paste it.

byte LEDPin = 11;       //PWM Output pin for LED
byte capSensePin = 2;   //Pin to connect to capacitive sensor
byte mode = zero;         //Determines LED brightness. zero is off. Varies between zero and 255.
byte touchThreshold = 100; //Minimum capacitive contact worth  with the intention to set off subsequent  mode
byte targetBrightness = zero; // Set energy on brightness
byte currentBrightness = zero; //variable to check brightness

void setup()

void loop()

// learnCapacitivePin
//  Input: Arduino pin quantity
//  Output: A quantity, from zero to 17 expressing
//          how a lot capacitance is on the pin
//  When you contact the pin, or no matter you’ve gotten
//  connected to it, the quantity will get greater
//  In order for this to work now,
// The pin ought to have a 1+Megaohm resistor pulling
//  it as much as +5v.
uint8_t learnCapacitivePin(int pinToMeasure)= bitmask;
    // Make the pin an enter WITHOUT the interior pull-up on
    *ddr &= ~(bitmask);
    // Now see how lengthy the pin to get pulled up
    int cycles = 16000;
    for(int i = zero; i < cycles; i++)
    // Discharge the pin once more by setting it low and output
    //  It’s essential to go away the pins low if you wish to
    //  be capable to contact greater than 1 sensor at a time – if
    //  the sensor is left pulled excessive, while you contact
    //  two sensors, your physique will switch the cost between
    //  sensors.
    *port &= ~(bitmask);

Read more


Leave a Reply

%d bloggers like this: