Super Secret kryssrutan Lås med kapacitiv Touch (2 / 3 steg)

Steg 2: kod



Avbrott kan vara knepigt, digital stift 2 är också PCINT0. Det är därför på knappen ansluts till stift 2 men avbrottet är kopplad till 0.

#include < Servo.h >

#include < CapacitiveSensor.h >

#include < avr/sleep.h >

CONST byte röd = 6;
CONST byte grön = 7.
CONST byte blå = 8.

CONST byte pot1 = A0;
CONST byte pot2 = A1;
CONST byte pot3 = A2;

CONST byte knappen = 2;

int Dispositionskod 1 = 1;
int code2 = 1;
int code3 = 1;

int pot_val1 = 0;
int pot_val2 = 0;
int pot_val3 = 0;

int button_val = 0;

int touch;

osignerade långa currentMillis = 0;
osignerade långa codeMillis = 0;
osignerade långa buttonMillis = 0;
osignerade långa sleepMillis = 0;

CapacitiveSensor cs_10_11 = CapacitiveSensor(3,4);

Servo myservo;

int sleepCounter = 0;
booleska state = låg;

void setup()
{
Serial.BEGIN(9600);
pinMode (röd, produktionen);
pinMode (grön, utgång);
pinMode (blå, OUTPUT);
pinMode (knapp, indata);
pinMode (pot1, ingång);
pinMode (pot2, ingång);
pinMode (pot3, ingång);
cs_10_11.set_CS_AutocaL_Millis(20000);
digitalWrite (knappen, hög);
attachInterrupt (0, avbrott, RISING);

}
void loop()
{
getPots(); läste i potten värden
mapAllPots(); justera dem till rätt skala
om (pot_val1 == 1 & & pot_val2 == code2 & & pot_val3 == code3) //if lösenordet är korrekt
{
Serial.println("success!");
g(); ljus grön led
Unlock(); låsa upp låset
sleepNow(); Gå och lägga sig
}
annat
{
Serial.println("Failure");
r(); slå på röda led
}

currentMillis = millis();
button_val =! digitalRead(button); läsa värdet knappen
Serial.println(button_val);
Serial.println(sleepCounter);

IF(button_val == 1) //if-knappen trycks, nollställa tidmätarna.
{
sleepMillis = currentMillis;
codeMillis = currentMillis;
}

om ((currentMillis-sleepMillis) > 20000) //if timer löper ut, somnar
{
sleepMillis = currentMillis;
sleepNow();
}

Touch = highLow(cs_10_11.capacitiveSensor(30)); Läs touch kapacitans och karta den till binär högt eller lågt
Serial.println(touch);
currentMillis = millis();
IF(touch == 1)
{
om ((currentMillis-codeMillis) > 5000) //if touch är 1 i 5 sekunder
{
b(); th ljusblå ledde
storeCode(); lagra kod från potten värden
Delay(300);
codeMillis = currentMillis;
}
}
IF(touch == 0) //if ingen touch reset timer för att förhindra tid ackumulering
{
codeMillis = currentMillis;
}

}

slutet av loop
////////////////////////////////

void interrupt()
{
currentMillis = millis();

om ((currentMillis-buttonMillis) > 200)
{

buttonMillis = currentMillis;
}
}
void sleepNow() / / här vi lägga arduino att sova
{
Off(); Stäng av alla lysdioder

set_sleep_mode(SLEEP_MODE_PWR_DOWN); viloläge är inställd här

sleep_enable(); kan sova lite i registret mcucr
så sömn är möjligt. bara en säkerhetsnål

attachInterrupt (0, avbrott, RISING); avbryta 0 (pin 2) och köra funktion
wakeUpNow när stift 2 blir låg
MCUCR = bit (BODS) | bit (BODSE); slå på brunt ut aktivera Välj
MCUCR = bit (BODS); Detta måste ske inom 4 klockcykler av ovan

sleep_mode(); här är enheten faktiskt lägga till sova!!
PROGRAMMET FORTSÄTTER HÄRIFRÅN EFTER UPPVAKNANDET

sleep_disable(); första sak efter att vakna från viloläge:
Inaktivera sömn...
detachInterrupt(0); inaktiverar avbryta 0 på pin 2 så
wakeUpNow kod körs inte
under normal gångtid

}
int highLow (osignerade långa x)
{
om (x > = 300)
{
tillbaka 1.
}
annat
{
Return 0;
}

}

void getPots()
{
pot_val1 = analogRead(pot1);
pot_val2 = analogRead(pot2);
pot_val3 = analogRead(pot3);
}
void mapAllPots()
{
pot_val1 = mapPot(pot_val1);
pot_val2 = mapPot(pot_val2);
pot_val3 = mapPot(pot_val3);
}
int mapPot (int i)
{
om (i > 1010) {
tillbaka 1.
}
annars om (i > 950) {
returnera 2.
}
annars om (i > 900) {
returnera 3.
}
annars om (i > 630) {
returnera 4.
}
annars om (i > 480) {
returnera 5.
}
annars om (i > 190) {
returnera 6.
}
annars om (i > 80) {
returnera 7.
}
annars om (i > 30) {
returnera 8.
}
annars om (i > 3) {
returnera 9.
}
}
void storeCode()
{
Dispositionskod 1 = pot_val1;
code2 = pot_val2;
code3 = pot_val3;
}
void r()
{
digitalWrite (röd, hög);
digitalWrite (grön, låg);
digitalWrite (blå, låg);
}
void g()
{
digitalWrite (röd, låg);
digitalWrite (grön, hög);
digitalWrite (blå, låg);
}
void b()
{
digitalWrite (röd, låg);
digitalWrite (grön, låg);
digitalWrite (blå, hög);
}
void off()
{
digitalWrite (röd, låg);
digitalWrite (grön, låg);
digitalWrite (blå, låg);
}
void unlock()
{
myservo.attach(9);
myservo.write(75);
Delay(750);
myservo.write(96);
Delay(250);
myservo.detach();
}

Se Steg
Relaterade Ämnen

Morsealfabetet med kapacitiv Touch!

Hejo! Idag kommer jag visa dig hur man gör en kapacitiv touch morsekod thingamajigger! Dess ganska cool och rolig för en grundläggande arduino projekt. Dess ganska lätt och lärande om kapacitiv touch växlar är en väg som tar dig till många ställen. N...

Simon säger med kapacitiv touch sensor

Detta är en grundläggande övning för noobs i arduino.Jag tycker om programmering och jag tror att mi kod kan vara intressant för någon. I min recension om du vill lära sig programmering du shouldn´t kopiera koden på alla i första gången, bör du försö...

Super Secret kryssrutan Lås

detta är en vit ek låda som jag gjort. Handtaget vändningar och avslöjar ett litet hål. När du sätter en tandpetare i hålet och push det flyttar låsa och låter rutan öppnar....

Arduino handledning: Kapacitiv Touch sensorer

Hej alla!Detta instructable är en handledning som vägleder dig om hur du använder kapacitiv touch sensorer med Arduino. En kapacitiv sensor är ett slags touch sensor, som kräver liten eller ingen kraft att aktivera.I detta Instructable om kapacitiv t...

Hur du skapar din egen kapacitiv touch flygplan med electro deg!

Komma igångMålet med detta Instructable är att förvandla din electro degen till en kapacitiv touch-knapp med Arduino med hjälp av CapSense arduino biblioteket.Du behöver:Start Arduino KitInuti din startar Arduino Kit hittar du:Hoppare ledningar8 x LE...

Arduino kapacitiv Touch spel

Detta är ett spel, genomfört från olika spel som pacman och mario brothers, som du kan förmodligen se!Jag fick idén att kombinera den kapacitiv touch och bearbetning att göra ett spel genom en instructable att jag såg (allmänt om kapacitiv touch sens...

Kapacitiv Touch Sensing för en personliga Massager

Snabbt göra en banan, en dryck, din sängram, spanking paddel eller ens din sexpartner till en beröring-känslig controller för din dildo! Synkronisera de njutbara känslorna av en metall head massager med din dildo, eller spela dina älskares kropp lik...

Kapacitiv Touch avkänning

i den här videon kommer vi att titta på att använda en PIC micro som har kapacitiv touch sensing modul ombord. Detta är den PIC16f727 chipet. Detta är del av den mTouch serien av PIC micro som mikrochip har kommit ut med. Jag talar i denna video om v...

Kapacitiv Touch Arduino Keyboard Piano

med endast en Arduino, några motstånd, en Summer och några bitar aluminiumfolie, kan du skapa din egen touch-sensor piano keyboard på bara några minuter! Med en Arduino Uno kan skapa du ett piano med upp till 18 nycklar. eller med en Arduino Mega, ka...

Kapacitiv touch vibrerande box

en dag kom jag in i en mobiltelefon vibration motor. Efter undrar vad till gör med det, kom jag upp med detta. Om du har någonsin sett dessa skallerorm ägg upptåg för att "skramlar" när du öppnar det, är detta väldigt lik den... bara med arduino...

Hur man gör en kapacitiv touch pad.

Det finns massor av projekt där ute för att använda kapacitiv touch sensorer.Detta instructable inspirerades av någon som gjort en kapacitiv touch Arduino piano.Problemet är hur man enkelt gör en touch pad, särskilt om du vill ha en tunn eller flexib...

Enkel hemmagjord kapacitiv touch penna

Denna penna är ett enkelt projekt som kräver få material. Det fungerar genom att använda conductivityen av din hand för att fungera som en kapacitiv touch penna. Här är roligt och enkelt projekt som alla kan göra.Steg 1: materialSamla ditt material:1...

Kapacitiv Touch Arduino lampa

EDIT: Jag gjorde ännu en av dessa och hacka en ikea-lampa med den. Du kan se den "vänners kompatibla overe härProblemetDet är sent på kvällen, och din mobiltelefon ringer. Du kan inte se där det är, du blint famlar runt ditt Nattduksbord, förgäves fö...

Kapacitiv touch humör/Ambilight

detta instructable är en snabb uppskrivning av min erfarenhet av att skapa en multifunktionell moodlight. Vissa grundläggande kunskaper av elektroniska kretsar förväntas. Projektet har inte ännu färdig, något att lägga till funktioner och tweaking må...

Arduino - TTP223B - KAPACITIVA TOUCH SENSOR SWITCH

Hej världen! Idag gjorde jag en kod för den ttp223b kapacitiv touch sensor. En sensor som jag testar för min webshop, och det gör sitt jobb! Så snart jag kommer att lägga till min webshop på arduinosensors.nl. Koden är verkligen lätt och kan användas...

Glödande pompom med kapacitiv växlar

Vill du göra dina Stickade kläder finare med hjälp av lysdioder, men ändå inte ser ut som en vandrande julgran?Vi har utvecklat detta awesome pom-pom som sprider ljuset från en LED. Genom att ansluta den till en mikrokontroller (Arduino eller AtTiny)...

Hur man gör en statisk elektricitet Generator - chock något & Fry elektronik med en Touch!

Jag har gjort en ny version av detta projekt som använder en DC ion generator, kan du se denI den här videon visar jag hur man gör en enhet som tillåter användaren att vinna makt av el. Hög spänning generatorn kan electrify personer hela kroppen med...

Laptop-högtalarsystem med iPod Touch dock

medan på länge familjeresor vi komma med längs våra Netbook eller Laptop med användning som en bärbar underhållningssystem. Oftast ett par hörlurar räcker inte. Jag föredrar också att ha en anständig uppsättning högtalare. Tyvärr högtalarna inbyggda...

Hur man gör en polyfonisk musik installation utlöses av kapacitiv touch pekar med en Arduino

Under ett projekt på KISD gjorde vi en interaktiv musik anläggning som var spelbara på ett ställe som kollektivtrafik. Utseendet på det var inspirerad av de färgglada metro planer som avgränsar varje tåglinje med en annan färg. För linjerna använde v...