Linkit en - Dual beam spektrometer (7 / 10 steg)
Steg 7: Kombinerar stepper och balkar
När arbetsmarknadens parter separat kontroll hade sorterats behövde jag kombinera dem så att spegeln skulle flytta samtidigt som att samla data. Detta betonade att insamlingen av data är det begränsande steget hastighet - den tid ta att läsa de två analoger saktar stepper till en genomsökning - jag över kom detta genom att minska Samplingsfrekvens för LDRs. För att göra detta jag bara dicided hur många prov punkt par jag ville (referens blank och prov) och delat det numret av motor steg för full svep av avspegla av det antalet (500) Detta gav mig antalet motor steg spegeln skulle gå av innan nästa data paret togs - tidigare styrelsen tog ett par data för varje motor steg som sprang in ca 12000 datauppsättningar.
PIN-anslutningar
Optik
OBS
- Bröd styrelsen används för att tillåta flera anslutningar till samma stift
- När ledningar de variabla motstånd försökte jag hålla ledningarna konsekvent när det gäller vilken etapp skickades till GND och som till 5V
LDR 1 - prov
- PIN GND varierande resistor utanför benet
- PIN A2 ena sidan av LDR, den andra sidan av LDR går till mellersta benet av den varierande resistorn
- PIN 5V variabelt motstånd andra yttre benet
LDR 2 - Blank
- PIN GND varierande resistor utanför benet
- PIN A0 ena sidan av LDR, den andra sidan av LDR går till mellersta benet av den varierande resistorn
- PIN 5V variabelt motstånd andra yttre benet
Motoriska Linkit en till EasyDriver
- Linkit stift 2 till ED Dir (riktning stift)
- Linkit stift 3 till ED steg (Motor steg kontroll)
- Linkit Pin GND till ED GND
Stepper motor är kopplad genom trial and error, men om ledningarna är redan i en plugg då det borde bara vara två försök och ström till motorn via 9v adapter.
Koden
För att kombinera koden jag placeras varje operativa avsnitt i namngivna funktioner då kallas funktionen som krävs detta tillåtna min ange antalet steg som tagits av motorn innan behandlingen tas - jag hade ursprungligen försökte kombinera båda koderna direkt men detta orsakat mig förvirring medan och fann det omöjligt att snabba upp systemet.
flyta potSample = A2; Provet punkt detektor pin anges genom stickprov på utrustningen
flyta potBlank = A0; Provet punkt detektor pin anges av Tom på utrustning flottören
SampleValue = 0; Ange startvärde prov till noll
flyta Blank = 0; Ange inledande tomt värde till noll
int x = 0; Ange data insamling referens till noll
//////////////////////////////////////////////////
int dirpin = 2;
int steppin = 3;
int i;
int a;
//////////////////////////////////////////////////
void setup() {
Serial.BEGIN(9600); öppnar seriell port
Serial.println("CLEARDATA"); rensar alla återstående data
Serial.println("label,Time,val,BLK"); ställa in rubriker för data till excel
pinMode (dirpin, produktionen);
pinMode (steppin, OUTPUT);
}
void forward() {
digitalWrite (steppin, låg); Detta låg till hög förändring är det som skapar den
digitalWrite (steppin, högt); "Stigande kanten" så easydriver vet att när man ska kliva. delayMicroseconds(500); Denna fördröjning är nära toppfart för detta
viss motor. Något snabbare motorn spiltor.
}
void backward() {
digitalWrite (steppin, låg); Detta låg till hög förändring är det som skapar den
digitalWrite (steppin, högt); "Stigande kanten" så easydriver vet att när man ska kliva. delayMicroseconds(500); Denna fördröjning är nära toppfart för detta}
void anropades {
SampleValue = analogRead(potSample);
Blank = analogRead(potBlank);
}
void Printdata() {
Serial.Print("data,Time,");
Serial.Print(SampleValue);
Serial.Print(",");
Serial.println(blank);
}
//////////////////////////////////////////////////
void loop() {
digitalWrite (dirpin, låg); Ange riktning.
Delay(1000);
x = x + 1.
om (x > = 200) {
Serial.println("CLEARDATA");
x = 0;
//}
för (en = 0; en < 500; a ++) {
anropades;
Printdata();
för (jag = 0; jag < 23; i ++) / / iterera microsteps.
{
Forward();
}
}
digitalWrite (dirpin, hög); Ändra riktning.
Delay(100);
för (jag = 0; jag < 11500; i ++) / / iterera för 4000 microsteps
{
Backward();
} / / särskild motor. Något snabbare motorn spiltor.
}