Rum ljus & temperatur Regulator (5 / 6 steg)

Steg 5: Kalibrering 2: motorer

Motorerna måste veta hur mycket för att vända sig till framgångsrikt stänga eller öppna mörkarna. Detta belopp kommer att anges i den slutliga skissen som en variabel. Jag har något konfigureras om den ursprungliga motor skissen för det att vända sig till faktiska grader istället för bara ett visst nummer.

Observera att samma mängd grader kommer att ha samma effekt över flera mörkarna. En diskrepans häri kunde vid konvertering minnet inte är tillräckligt raka eller konvertering bitar att vara för lös från konvertering sticka eller roterande komponenter själva. Eller det kan vara mörkarna själva, jag är säker på att de inte kalibrera varje blind att stänga på exakt samma mängd roterande under tillverkning.

Koden

Nedan är koden för att kalibrera. Syntaxen skulle bli stor bokstav ("A", "B", "C" eller "D") (motsvarande med relä och motor nummer) direkt följt av mängden grader att vända. Även negativa belopp. Så om du skriver "B-420" och tryck enter, relä port 2 kommer att blir öppna och motorn minus 420 grader. Anteckna när mörkarna är öppna och stänga, behöver den att rotera medurs eller moturs? Detta kan vara viktigt att upptäcka omedelbart, det är möjligt du kan berätta den för att slå en mängd grader öppen medan mörkarna är på maximalt öppna, vilket kan orsaka skador på din stegmotor, din konvertering stick/bitar av även blinda själv. Också försöka att inte ge för hög flera att vända i början, det finns inget sätt att stoppa detta manuellt när du kör, det enda du kan göra är pull att USB-kontakten.

Prova att lägga mindre mängder som du berätta den för att slå samman, så att du vet hur mycket för att vända på en gång. Försök sedan att sätta det samma nummer i negationen till se om fullt öppnas när stängt eller vice versa. Akta dig allt detta kan faktiskt ta lite tid.

#define RELAY1 3
#define RELAY2 4
#define RELAY3 5
#define RELAY4 6

#define öppen sant
#define nära falskt

#define IN1 8
#define IN2 9
#define IN3 10
#define IN4 11
int steg = 0;
booleska riktning = sant; / / gre
osignerade långa last_time;
osignerade långa currentMillis;
int steps_left = 4095;
lång tid;

int tempDegrees = 0;
String tempString = "";

void setup() {
Serial.BEGIN(9600);
pinMode (IN1, OUTPUT);
pinMode (IN2, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
pinMode (RELAY1, OUTPUT);
pinMode (RELAY2, OUTPUT);
pinMode (RELAY3, OUTPUT);
}

void loop() {
om (Serial.available() > 0) {

char chr = (char)Serial.read();
Serial.println(Chr);

om (chr == "A") {
medan (Serial.available() > 0) {
tempString += (char)Serial.read();
}
tempDegrees = tempString.toInt();
Serial.println (tempString + ", \ttmpDegrees:" + tempDegrees + "\t");
tempString = "";
fördröjning (500).
digitalWrite (RELAY1, öppen);
Delay(100);
turnDegrees(tempDegrees);
digitalWrite (RELAY1, nära);
tempDegrees = 0;
closeRelays();
}

om (chr == 'B') {
medan (Serial.available() > 0) {
tempString += (char)Serial.read();
}
tempDegrees = tempString.toInt();
Serial.println (tempString + ", \ttmpDegrees:" + tempDegrees + "\t");
tempString = "";
fördröjning (500).
digitalWrite (RELAY2, öppen);
Delay(100);
turnDegrees(tempDegrees);
digitalWrite (RELAY2, nära);
tempDegrees = 0;
closeRelays();
}

om (chr == "C") {
medan (Serial.available() > 0) {
tempString += (char)Serial.read();
}
tempDegrees = tempString.toInt();
Serial.println (tempString + ", \ttmpDegrees:" + tempDegrees + "\t");
tempString = "";
fördröjning (500).
digitalWrite (RELAY3, öppen);
Delay(100);
turnDegrees(tempDegrees);
digitalWrite (RELAY3, nära);
tempDegrees = 0;
closeRelays();
}

om (chr == hade ") {
medan (Serial.available() > 0) {
tempString += (char)Serial.read();
}
tempDegrees = tempString.toInt();
Serial.println (tempString + ", \ttmpDegrees:" + tempDegrees + "\t");
tempString = "";
fördröjning (500).
digitalWrite (RELAY4, öppen);
Delay(100);
turnDegrees(tempDegrees);
digitalWrite (RELAY4, nära);
tempDegrees = 0;
closeRelays();
}
}
}

void turnDegrees (int grader) {
flyta tmpDegree = (float) grader;
grader = (int)(tmpDegree * 11.38);
Riktning = grader > 0? falska: sant;

om (grader < 0)
grader * = -1;

medan (grader > 0) {
currentMillis = micros();
om (currentMillis - last_time > = 1000) {
stepper(1);
tid = tid + micros() - last_time;
last_time = micros();
grader--;
}
}

Delay(2000);

}

Annullera stepper (int xw) {
för (int x = 0; x < xw; x ++) {
Switch (steg) {
fall 0:
digitalWrite (IN1, låg);
digitalWrite (IN2, låg);
digitalWrite (IN3, låg);
digitalWrite (IN4, hög);
bryta;
fall 1:
digitalWrite (IN1, låg);
digitalWrite (IN2, låg);
digitalWrite (IN3, hög);
digitalWrite (IN4, hög);
bryta;
fall 2:
digitalWrite (IN1, låg);
digitalWrite (IN2, låg);
digitalWrite (IN3, hög);
digitalWrite (IN4, låg);
bryta;
fall 3:
digitalWrite (IN1, låg);
digitalWrite (IN2, hög);
digitalWrite (IN3, hög);
digitalWrite (IN4, låg);
bryta;
fall 4:
digitalWrite (IN1, låg);
digitalWrite (IN2, hög);
digitalWrite (IN3, låg);
digitalWrite (IN4, låg);
bryta;
fall 5:
digitalWrite (IN1, hög);
digitalWrite (IN2, hög);
digitalWrite (IN3, låg);
digitalWrite (IN4, låg);
bryta;
fall 6:
digitalWrite (IN1, hög);
digitalWrite (IN2, låg);
digitalWrite (IN3, låg);
digitalWrite (IN4, låg);
bryta;
fall 7:
digitalWrite (IN1, hög);
digitalWrite (IN2, låg);
digitalWrite (IN3, låg);
digitalWrite (IN4, hög);
bryta;
standard:
digitalWrite (IN1, låg);
digitalWrite (IN2, låg);
digitalWrite (IN3, låg);
digitalWrite (IN4, låg);
bryta;
}
SetDirection();
}
}

void SetDirection() {
om (riktning == 1) {
Steg ++;
}
om (riktning == 0) {
Steg--;
}
om (steg > 7) {
Steg = 0;
}
om (steg < 0) {
Steg = 7.
}
}

void closeRelays() {
digitalWrite (RELAY1, nära);
digitalWrite (RELAY2, nära);
digitalWrite (RELAY3, nära);
digitalWrite (RELAY4, nära);
}

Se Steg
Relaterade Ämnen

Farkosten en futuristiska rum ljus upcycled ur en gammal hårddisk enhet

Så du bygga Beamboarder från min andra instruktion och du vet inte vad jag ska göra med det hård avkasta driva fallet?! Eller vill du bara ha en trevlig ljus på ditt skrivbord eller vägg? Här en liten instruktion hur man återanvänder en gammal hårddi...

Rum ljus med din ficklampa

vårt vardagsrum var ganska mörkt eftersom det inte hade en taklampa. Vi hade bara en liten lampa bredvid soffan. Vi ville ha mer ljus. Dock hade vi en tutande stora kraftfulla LED-ficklampa med uppladdningsbara batterier designad av Google, så vi bes...

Kontrollera ditt rum ljus med din mobil

Detta instructable visar dig hur du ansluter din lampa till din mobiltelefon, och styra den via IR-sensorn.Du kan styra någon elektrisk sak hemma efter detta instructable, om du förstår de viktigaste begreppen.Den maskinvara du behöver för detta proj...

Cocktail parasoll ljus skugga

Parasoll skuggar du från solen som är stor ljusstyrka. Så varför inte använda mycket liten cocktail parasoller för att skugga du från ditt rum ljus som är liten?Denna cocktail parasoll ljus skugga är så enkel att göra. Det i princip bara sticka cockt...

En mycket enkel fjärrkontroll blinkande LED-ljus

Tanken på detta Instructable är att visa dig hur man gör en mycket enkel och liten, underhållande, förtrollande, egendomligt blinkande LED-ljus under dekoration av ditt val, det blinkar av någon infraröd fjärrkontroll signal tas emot!Oavsett om det ä...

Tester av LED och olika ljus sensorer

Två kretsar jag gjorde, en rörelsesensor och en sol tracker, var inte fungerar som den ska, och så jag bestämde mig att testa känsligheten av ljussensorer dessa kretsar som används. Forska i ämnet, jag var förvånad över att lysdioder kan användas som...

LED ljus för närbild bilder

Hi, gott folk!Det var 0ctober, 2008. Fran bara få en ny E410. Och han ville ta extrema nära ups.Tja, utan ordentlig ljus det bara slösar tid. Och efter samlande kommersiella erbjudanden - twin utlöses, O-ring utlöses, etc., hundra spänn minst, tar ja...

Arduino ljus efter Robot

ÖversiktDetta instructable kommer att använda tre photoresistors (ljus beroende motstånd) och en Arduino att förflyttningar av en robot. Någon gemensam robot chassi kan användas för robot. Ljussensorer kommer att monteras på vänster sida, höger sida...

Ljus intensitet läsare

Samtidigt försöker tänka på något som kan relatera till visualisera dagliga fenomen, avkänning det och analysera det på en skärm, hamnade vi slutligen landa på idén att visualisera ljusintensiteten på en skärm.För detta använde vi ljus beroende Resis...

DIY Smart Home Automation med Android

Smart Home Automation Låt användaren för att styra hem från hans eller hennes telefon och tilldela åtgärder som bör hända beroende på tid eller andra sensormätningar som ljus, temperatur eller ljudet från alla enheter i nätverket hemautomation.VAD KA...

Bygga din egen Kegerator för Homebrew

om titeln på detta instructable toppar ditt intresse, då du förmodligen brygga eller har bryggt en egen öl. Om så är fallet, då tröttnat du förmodligen på påfyllning och rengöring alla dessa flaskor. Bygga en kegerator är det bästa sättet att öka din...

Atmel start 4: Blinky två-växlar, Pull-Up motstånd och Bit Ops

Figur 1: Exempel växlar som kan använda MCU pull-up resisters, främre: Foto-motstånd, Foto-transistor, knapp; Bakre: exempel knappsatser.M. A. Parker c2015Blinky två visar hur MCU kan lätt läsa delstaten externa switchar, vilket inkluderar tryckknapp...

Anslutna Studio varningslampa

I detta Instructable, vi kommer att bygga en mycket modern ta på en ikonisk bit studioutrustning: en smart on-air varningslampa som svarar på Robin room bokningssystemet.Detta projekt startade livet som en praktisk lösning till vårt tillfälliga behov...

Behandlingen sensorer med en mikroprocessor.

I min tidigare Instructable jag visade hur enkla kommandon kan användas för att aktivera en mikroprocessor utmatning och ljus en LED.Jag måste betona jag inte är ansluten med Picaxe och dessa projekt är sådana jag använde i skolan för att lära progra...

Blommig akvarell franska Macarons

Hej Momoluvers, det är Momo och smilfink jag kommer att visa dig hur du gör dessa vackra lite fester. Som ni vet, är jag macaron besatt. Jag står för mitt uttalande att de är de största snacks genom tiderna, och även om tidskrävande, de är definitivt...

SMART POWER OUTLET

Hej, Välkommen till min nya Instructable på Home Automation.Detta projekt startades för att lösa några vanliga problem som alla står inför. Antar att det är en kall vinternatt, du läser en roman på sängen, innan du somnar. Efter att ha läst några sid...

Multipurpose Hydroponics och jord trädgårdsskötsel lösning

Jag har redan publicerat en liknande instructable och här är en reducerad version av samma eftersom det kändes lite för komplicerat för vissa. Här går vi...IntroduktionMånga människor tycker om start trädgårdsarbete som hobby och några föreställa sig...

IR-fjärrkontrollen posterar för Android - Sänk TV

Obs: denna GUIDE kan också hittas på TECHBITAR.COMUPPDATERING28 nov 2013: Med på farliga prototyper http://goo.gl/FjwNoQINTRODUKTIONI denna guide kommer jag förklara att skapa och drift av en enkel Arduino-baserad IR-fjärrkontrollen posterar (IR-post...

Scanning hinna negativ med en DSLR

Tja, kan bara säga jag har fått bättre på detta under de senaste åren. Den vänstra bilden var en av de första som jag har "scannat" med min DSLR, och den till höger har jag bara omsökas med de tekniker som beskrivs nedan (högre upplösning finns...