Capacitieve Touch Arduino Lamp (4 / 7 stap)

Stap 4: CODE discussie

In deze sectie worden de verschillende variabelen en constanten die we gaan gebruiken. Houd er rekening mee dat ik byte const in plaats van int. gebruikt heb De reden is, is dat micro-controllers hebben zeer beperkte opslagruimte. Int waarden kunnen maximaal 28 bytes, waar als een byte waarde een getal tussen 1 en 255 kunt opslaan en uitsluitend neemt opwaarts... 1 byte.  Ik gebruikte de int tag voor touchThreshold want mij watertje getting waarden groter dan 255 geretourneerd.

Const byte wordt gebruikt, omdat het vertelt de compiler optimizer opslag gebruik.

Const byte LEDPin = 11;       PWM-uitgang pins voor LED
Const byte capSensePin = 2;   PIN te hechten aan de capacitieve sensor
byte modus = 0;         Hiermee bepaalt u de helderheid van de LED. 0 is uitgeschakeld. Varieert tussen 0 en 255.
int touchThreshold = 100; Minimale aanraakgevoelige waarde om te starten volgende modus
byte targetBrightness = 0; Instellen power op helderheid
byte currentBrightness = 0;

Void setup loopt eenmaal, en het toewijzen van pinModes enz. Ik begin de seriële monitor hier omdat ik het om problemen te schieten gebruikte.

VOID Setup {}
Serial.begin(9600);
pinMode (LEDPin, uitvoer);  LEDPin ingesteld op uitvoermodus
}

void loop {}

Dit is het hoofdprogramma loop. Het houdt op herhalen en de verschillende coderegels doorlopen.

Als (readCapacitivePin(capSensePin) > touchThreshold) {//If de waarde voor capSensePin groter is dan touchThreshold doe dan...
delay(250);
Knop ontdendering. Hoe zou ik het verwijderen van deze pauze met behulp van millis()??
modus ++; Als de aanraking drempel wordt overschreden, Verhoog de waarde van modus met 1

Dit volgende deel schetst de verschillende helderheidsniveaus van LED. Twee == in een rij vertelt de processor om twee waarden te vergelijken.
Als (modus > 3) modus = 0;  Als de waarde voor mode > 3 vervolgens waarde van modus ingesteld op 0.
Als (modus == 0) targetBrightness = 0;
Als (modus 1 ==) targetBrightness = 255;
Als (modus 2 ==) targetBrightness = 128;
Als (modus 3 ==) targetBrightness = 64;

Serial.Print ("de huidige modus is..."); Seriële monitor bebug modus verhoogt
Serial.println(mode);  afdrukken van de waarde van modus naar seial monitor

}
Vervagen gedeelte

Als (targetBrightness > currentBrightness) currentBrightness ++; Als het doel helderheid minder dan de huidige helderheid, vervolgens + 1 tot //current helderheid is
Als (targetBrightness < currentBrightness) currentBrightness--;
analogWrite (LEDPin, currentBrightness); PWM output naar LEDPin. Hiermee wijzigt u de helderheid van het licht
delay(3);
Serial.println(currentBrightness);

DIT PUNT VERDER IK HEB NIET SCHRIJVEN. Het was de iincluded in het voorbeeld uit de arduino.
Elke 500 ms, afdrukken de waarde van de capacitieve sensor
Als ((millis() % 500) == 0) {}
Serial.Print ("capacitieve Sensor op Pin 2 leest:");
Serial.println(readCapacitivePin(capSensePin));
}
}

readCapacitivePin
Ingang: Arduino pin-nummer
Uitgang: Een nummer, van 0 tot de uiting van de 17
hoeveel capaciteit is op de pin
Wanneer u contact met de pin, of wat je hebt
gekoppeld aan het, krijgt het nummer hogere
Om dit nu, aan het werk
De pincode moet een 1 + Megaohm weerstand trekken
het t/m + 5v.
uint8_t readCapacitivePin (int pinToMeasure) {}
Dit is hoe u een variabele declareren die
de poort, PIN en DDR registers zal houden
op een AVR
vluchtige uint8_t * haven;
vluchtige uint8_t * ddr;
vluchtige uint8_t * pin;
Hier vertalen wij de invoer pin-nummer van
Arduino pin nummer AVR poort, PIN, DDR,
en welke bits van deze registers die we schelen.
byte bitmasker;
Als ((pinToMeasure > = 0) & & (pinToMeasure < = 7)) {}
poort = & PORTD;
DDR = & DDRD;
bitmasker = 1 << pinToMeasure;
PIN = & PIND;
}
Als ((pinToMeasure > 7) & & (pinToMeasure < = 13)) {}
poort = & PORTB;
DDR = & DDRB;
bitmasker = 1 << (pinToMeasure - 8);
PIN = & PINB;
}
Als ((pinToMeasure > 13) & & (pinToMeasure < = 19)) {}
poort = & PORTC;
DDR = & DDRC;
bitmasker = 1 << (pinToMeasure - 13);
PIN = & PINC;
}
Kwijting van de pin eerst door het lage- en output
* poort & = ~ (bitmasker);
* ddr | = bitmasker;
delay(1);
Maak de pin een ingang zonder de interne pull-up op
* ddr & = ~ (bitmasker);
Nu zien hoe lang de pin te krijgen trok
int cycli = 16000;
for (int i = 0; ik < cycli; i ++) {}
Als (* pin & bitmasker) {}
cycli = i;
breken;
}
}
Kwijting van de pin opnieuw door het lage- en output
Het is belangrijk om te laten de pinnen laag als u wilt
mogelijk te raken meer dan 1 sensor tegelijk - als
de sensor wordt overgelaten getrokken hoog, wanneer je aanraken
twee sensoren, je lichaam zal de overdracht van de kosten tussen
sensoren.
* poort & = ~ (bitmasker);
* ddr | = bitmasker;

retourneren van cycli;
}

Gerelateerde Artikelen

Capacitieve-Touch Arduino toetsenbord Piano

Capacitieve-Touch Arduino toetsenbord Piano

met alleen een Arduino, een paar weerstanden, een zoemer en sommige stukjes aluminiumfolie, kunt u uw eigen piano klavier van touch-sensor maken in slechts een paar minuten! Met behulp van een Arduino Uno, kunt u een piano met 18 toetsen; of met een
Arduino - TTP223B - capacitieve TOUCH SENSOR SWITCH

Arduino - TTP223B - capacitieve TOUCH SENSOR SWITCH

Hello wereld! Vandaag maakte ik een code voor de ttp223b Capacitieve touch sensor. Een sensor die ik aan het testen ben voor mijn webshop, en het doet zijn werk! Zo snel ik zal toevoegen op mijn webshop op arduinosensors.nl. De code is heel eenvoudig
Arduino Capacitieve Touch spel

Arduino Capacitieve Touch spel

Dit is een spel, vanaf verschillende spellen zoals pacman en mario brothers, ten uitvoer gelegd, zoals u waarschijnlijk kunt zien!Ik kreeg het idee om het combineren van de aanraakgevoelige en verwerking een om spel te maken door middel van een instr
Capacitieve koperen kubus Lamp

Capacitieve koperen kubus Lamp

Hallo en welkom! In dit Instructable zullen we leren hoe maak je een standup of opknoping aanraking gevoelige LED-lamp van op maat gemaakte printplaten gemaakt. We nemen een nieuwe toepassing van gebrandschilderd glas stijl solderen technieken te mon
Capacitieve Touch Sensing voor een persoonlijke massage

Capacitieve Touch Sensing voor een persoonlijke massage

Maak snel een banaan, een drankje, uw bed frame, een spanking peddel of zelfs uw sex partner een aanraakgevoelig controller voor uw dildo! De aangename gevoelens van een metalen hoofd massage synchroniseren met uw dildo, of je geliefde lichaam zoals
Morse Code met Capacitieve Touch!

Morse Code met Capacitieve Touch!

Hejo! Vandaag, zal ik u tonen hoe maak je een Capacitieve touch morse code thingamajigger! Zijn pretty cool en leuk voor een fundamentele arduino project. Zijn vrij gemakkelijk en het leren over aanraakgevoelige schakelopties is een weg die brengt u
Hoe maak je een polyfone muziekinstallatie veroorzaakt door Capacitieve touch punten met behulp van een Arduino

Hoe maak je een polyfone muziekinstallatie veroorzaakt door Capacitieve touch punten met behulp van een Arduino

Tijdens een project bij KISD maakte wij een interactieve muziekinstallatie die speelbaar op een openbaar vervoer plaats was. De uitstraling van het is geïnspireerd door de kleurrijke metro plannen die elke trein-lijn te met een andere kleur scheiden.
Super Secret Lock Box w / Capacitieve Touch

Super Secret Lock Box w / Capacitieve Touch

Hey iedereen, ik wilde een project dat ik net klaar met deelt. Ik bouwde een super geheime vergrendeling doos voor mijn broertje van vriendinnen. Hij heeft een talent voor creatieve lego bouwen dus ik dacht dat het zou een goed idee dat om open hem z
Capacitieve touch vibrerende vak

Capacitieve touch vibrerende vak

op een dag kwam ik in een mobiele telefoon vibratie motor. Na af wat te doen met het, kwam ik met dit. Als u ooit hebt gezien die ratelslang ei streken die "ratels" wanneer u het opent, is dit veel als hetâ €¦ slechts met arduino. Dus het is bet
LCDBPV2 3.2" TFT + Touch & Arduino UNO. FAST

LCDBPV2 3.2" TFT + Touch & Arduino UNO. FAST

Toen ik begon bouwprojecten besefte ik dat nodig een display, beter dan LED's om gegevens in real-time weer te geven.Displays duur kunnen zijn en er zijn ook verschillende types: 7 segmenten met verschillende maten, zwart-wit, kleur, met een grotere
E-Notification Capacitieve Touch Deurknopje Alarm (OEF!)

E-Notification Capacitieve Touch Deurknopje Alarm (OEF!)

Ik heb ten slotte temidden van middelbare school en andere dingen, besloten om wat pret te maken mijn eerste en instructable. Hebt u feedback voor mij zijn vragen u kunt opschrijven in de commentaren en ik zal proberen ze te beantwoorden.Dit instruct
Raspberry Pi Pad! Capacitieve Touch Screen Tablet!

Raspberry Pi Pad! Capacitieve Touch Screen Tablet!

Een korte handleiding op het maken van uw zeer eigen touchscreen pi pad!Element14 capacitieve touchscreen from 60 €Apple ipad mini batterij 10 pondLithium acculader en 5v USB-2a stuurprogramma boord 5 pondRaspberry pi 2 £35Soldeerbout en vaardigheden
Simon zegt met Capacitieve touch sensor

Simon zegt met Capacitieve touch sensor

Dit is een basistraining voor de noobs in de arduino.Ik geniet van programmering en ik denk dat dat mi code zou interessant voor iemand. Als u wilt leren programmeren u shouldn´t Kopieer de code helemaal in het eerst, moet u in mijn review uw code ge
Eenvoudige Capacitieve Touch Stylus Super

Eenvoudige Capacitieve Touch Stylus Super

ik struikelde over dit volledig bij toeval. Ik was te luisteren naar muziek op mijn telefoon op het werk een dag en het snoer op mijn koptelefoon gehouden aanraken van het scherm en waardoor het te jatten en klik op allerlei spullen. Toen ik thuis kw