Израда аутоматске штоперице за тркаче, спортисте и спортисте

Испробајте Наш Инструмент За Елиминисање Проблема





У овом посту ћемо конструисати штоперицу која аутоматски покреће тајмер када тркач почне да се покреће и тајмер се зауставља када тркач дође до краја. Протекло време између почетне и крајње тачке приказује се на ЛЦД-у димензија 16 к 2.

Прво започнимо са учењем како да конфигуришемо једноставан и изузетно тачан круг штоперице Ардуино.



Штоперица је ручно управљани сатни уређај дизајниран за мерење дужине времена које је могло протећи почев од одређеног тренутка када је био активиран и до тренутка када је коначно деактивиран. Већа варијанта истог уређаја назива се зауставни сат који се користи за праћење акције из даљине и који се обично налази на спортском стадиону итд.

Механичка вс Електронска штоперица

Раније су традиционални механички ручни штоперице били чешћи и сви су их користили у ту сврху.



У механичком систему имали смо два тастера за извршавање функција штоперице. Једно за покретање зауставног сата притиском једном, и за заустављање времена поновним притиском истог дугмета за бележење протеклог времена .... друго дугме је коришћено за враћање сата на нулу.

Механички зауставни сат је у основи радио преко опружне снаге, што је захтевало период навијања ручно окрећући дланчасто дугме на врху часовничког уређаја.

Међутим, у поређењу са модерним дигиталним штоперицама, механички типови се могу сматрати значајно примитивним и нетачним у опсегу милисекунди.

Коришћење Ардуина

А данас са појавом микроконтролера, ове штоперице су постале изузетно тачне и поуздане у микросекундном опсегу.

Ардуино круг штоперице који је овде представљен један је од ових модерних дизајна напајаних микроконтролером, а најтачније се може очекивати да буде у равни са комерцијалним модерним штоперицама.

Научимо како да направимо предложени круг зауставног сата Ардуино:

За изградњу ће вам требати следећи Предмет материјала:

Потребан хардвер

Ардуино ЛЦД штитник за тастатуру (СКУ: ДФР0009)

Ардуино ЛЦД штитник за тастатуру (СКУ: ДФР0009)

Ардуино ОНЕ плоча

Ардуино УНО

Ардуино УСБ кабл

ардуино усб кабл

Једном када набавите горе наведени материјал и повежете их међусобно, само је потребно конфигурисати следећи дати код скице на вашу Ардуино плочу и гледати магију функција зауставног сата.

Код

/*
Standalone Arduino StopWatch
By Conor M - 11/05/15
Modified by Elac - 12/05/15
*/
// call the necessary libraries
#include
#include
// these are the pins used on the shield for this sketch
LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7)
// variables used on more than 1 function need to be declared here
unsigned long start, finished, elapsed
boolean r = false
// Variables for button debounce time
long lastButtonPressTime = 0 // the last time the button was pressed
long debounceDelay = 50 // the debounce time keep this as low as possible
void setup()
{
lcd.begin(16, 2) // inicialize the lcd (16 chars, 2 lines)
// a little introduction :)
lcd.setCursor(4, 0) // set the cursor to first character on line 1 - NOT needed (it sets automatically on lcd.begin()
lcd.print('Arduino')
lcd.setCursor(3, 1) // set the cursor to 4th character on line 2
lcd.print('StopWatch')
delay(2000) // wait 2 seconds
lcd.clear() // clear the display
lcd.print('Press select for')
lcd.setCursor(2, 1) // set the cursor to 3rd character on line 2
lcd.print('Start & Stop')
}
void loop()
{
CheckStartStop()
DisplayResult()
}
void CheckStartStop()
{
int x = analogRead (0) // assign 'x' to the Arduino's AnalogueInputs (Shield's buttons)
if (x 600 ) // if the button is SELECT
{
if ((millis() - lastButtonPressTime) > debounceDelay)
{
if (r == false)
{
lcd.clear()
lcd.setCursor(2, 0) // needed
lcd.print('Elapsed Time')
start = millis() // saves start time to calculate the elapsed time
}
else if (r == true)
{
lcd.setCursor(2, 0) // needed
lcd.print(' Final Time ')
}
r = !r
}
lastButtonPressTime = millis()
}
}
void DisplayResult()
{
if (r == true)
{
finished = millis() // saves stop time to calculate the elapsed time
// declare variables
float h, m, s, ms
unsigned long over
// MATH time!!!
elapsed = finished - start
h = int(elapsed / 3600000)
over = elapsed % 3600000
m = int(over / 60000)
over = over % 60000
s = int(over / 1000)
ms = over % 1000
// display the results
lcd.setCursor(0, 1)
lcd.print(h, 0) // display variable 'h' - the 0 after it is the
number of algorithms after a comma (ex: lcd.print(h, 2) would print
0,00
lcd.print('h ') // and the letter 'h' after it
lcd.print(m, 0)
lcd.print('m ')
lcd.print(s, 0)
lcd.print('s ')
if (h <10)
{
lcd.print(ms, 0)
lcd.print('ms ')
}
}
}

Додавање екрана од 7 сегмената

Сада наставимо са детаљима у вези са изградњом штоперице, помоћу 7-сегментног ЛЕД екрана и Ардуина. Истражићемо концепте који се односе на прекиде и управљачке програме дисплеја који су пресудни за разумевање овог пројекта. Овај пројекат је предложио господин Абу-Хафсс, један од страствених читалаца ове веб странице.

Као што већ знамо да је штоперица уређај који помаже у праћењу кратког временског периода од сати до милисекунди (углавном). Готово сви јефтини дигитални ручни сатови опремљени функцијом штоперице, али ниједан од сатова не може дати одушевљење томе да направимо један за себе, а такође је и проналазак штоперице са 7-сегментним ЛЕД дисплејем изузетно.

Господин Абу-Хафсс предложио нам је да дизајнирамо штоперицу са 4 екрана, два за минуту и ​​два за секунде (ММ: СС). Али за већину нас то можда није изводљив дизајн, па смо додали још два дисплеја за милисекундни опсег, па ће сада предложени дизајн бити у ММ: СС: мС конфигурацији.

Ако вам из неког разлога само треба ММ: СС конфигурација, није потребно повезивати милимекундне дисплеје са 7 сегментних дисплеја и његове управљачке ИЦ-ове, на целу функционалност кола и даље неће утицати.

Коло:

Предложена штоперица састоји се од шест ИЦ 4026 који је седмосегментни управљачки програм за дисплеј, шест седмосегментних ЛЕД дисплеја, једна Ардуино плоча, неколико тастера и неколико 10К отпорника.

Сада да разумемо како да повежемо ИЦ 4026 са 7-сегментним екраном.

7-сегментни дисплеј може бити било који уобичајени катодни приказ било које боје. Екран од 7 сегмената може бити лако убијен напајањем од 5 В, тако да је отпор од 330 ома обавезан на сваком сегменту екрана.

Сада да видимо пин дијаграм ИЦ 4026:

  • Пин # 1 је улаз сата.
  • Пин # 2 је онемогућен сатом, онемогућава бројање на екрану ако је овај пин висок.
  • Пин # 3 омогућава приказ ако је овај пин низак, екран ће бити искључен и обрнуто.
  • Пин # 5 је изведен, што постаје високо када ИЦ броји 10.
  • Клинови 6, 7, 9, 10, 11, 12, 13 су излазни излази.
  • Пин # 8 је ГНД.
  • Пин # 16 је Вцц.
  • Пин # 15 се ресетује, ако га подигнемо, број се претвара у нулу.
  • Игле # 4 и # 14 се не користе.

Приказ дијаграма везе:

Дијаграм повезивања ЛЦД екрана:

Било који од ГНД пинова 7-сегментног дисплеја може се повезати са масом. ИЦ се мора напајати из напајања од 5 В или Ардуино-овог излазног пина од 5 В.

Горња шема за само један екран, поновите исто за пет осталих екрана.

Ево остатка шеме:

Штоперица која користи Ардуино са 7-сегментним приказом

Коло се може напајати из 9В батерије. Овде се налазе два дугмета, једно за покретање времена и друго за заустављање. Притиском на тастер ресетовања на Ардуину, на екрану ће се рачунање времена ресетовати на нулу.

Два тастера су повезана на пин # 2 и # 3 који су хардверски прекид микроконтролера Ардуино / Атмега328П.

Хајде да схватимо шта је прекид:

Постоје две врсте прекида: хардверски и софтверски. Овде користимо само хардверски прекид.

Прекид је сигнал микроконтролеру који чини да микроконтролер одмах реагује на догађај.

Постоје само два пина за хардверски прекид на Ардуино плочама са пиновима # 2 и # 3 микроконтролера АТмега328П. Ардуино мега има више од два пина за хардверске прекиде.

Микроконтролери не могу истовремено да извршавају две функције. На пример, провера притиска тастера и бројање бројева.

Микроконтролери не могу истовремено извршити два догађаја. Ако напишемо код за проверу притиска тастера и бројање бројева, притисак тастера ће се открити тек када микроконтролер прочита комад кода за откривање притиска дугмета, остатак времена (броји бројеве) дугме не ради.

Дакле, доћи ће до кашњења у откривању притиска дугмета и из неког разлога ако се код привремено заустави, притискање дугмета можда никада неће бити откривено. Да би се избегле ове врсте проблема, уводи се прекид.

Сигналу прекида увек се даје највећи приоритет, главна функција (главне линије кода) ће бити заустављена и извршава функцију (други комад кода) додељену за тај одређени прекид.

Ово је веома важно за временски критичне апликације попут штоперице или сигурносних система итд. Код којих процесор треба да одмах предузме мере као одговор на догађај.

У Ардуину хардверски прекид додељујемо као:

аттацхИнтеррупт (0, старт, РИСИНГ)

  • „0“ значи прекидни број нула (у микроконтролерима све почиње од нуле) који је пин # 2.
  • „Старт“ је име функције прекида, овде можете именовати било шта.
  • 'РИСИНГ' ако пин # 2 (који је нула прекида) пређе увис, функција прекида се извршава.

аттацхИнтеррупт (1, Стоп, РИСИНГ)

  • „1“ значи прекид број један који је пин # 3.
  • „Стоп“ је назив прекида.

Такође можемо заменити „РИСИНГ“ са „ФАЛЛИНГ“, сада када прекидачки пин иде ЛОВ, функција прекида се извршава.

Такође можемо заменити „РИСИНГ“ са „ЦХАНГЕ“, сада кад год се прекидачки пин прелази са високог на нижи или од ниског до високог, функција прекида се извршава.

Функција прекида може се доделити на следећи начин:

воид старт () // старт је име прекида.

{

// програм овде

}

Функција прекида мора бити што краћа и функција делаи () се не може користити.

То закључује да ће софтверски прекид хардверског прекида који се односи на Ардуино бити објашњен у будућем чланку.

Сада знате зашто смо дугмад за покретање и заустављање повезали да бисмо прекинули пинове.

Спојите струјни круг према дијаграму, а остатак кола је сам по себи разумљив.

Програм:

//----------------Program Developed by R.GIRISH---------------//
int vmin = 0
int vsec = 0
int vms = 0
boolean Run = false
const int Min = 7
const int sec = 6
const int ms = 5
const int reset_pin = 4
void setup()
{
pinMode(Min, OUTPUT)
pinMode(sec, OUTPUT)
pinMode(ms, OUTPUT)
pinMode(reset_pin, OUTPUT)
digitalWrite(Min, LOW)
digitalWrite(sec, LOW)
digitalWrite(ms, LOW)
digitalWrite(reset_pin, HIGH)
digitalWrite(reset_pin, LOW)
attachInterrupt(0, start, RISING)
attachInterrupt(1, Stop, RISING)
}
void loop()
{
if (Run)
{
vms = vms + 1
digitalWrite(ms, HIGH)
delay(5)
digitalWrite(ms, LOW)
delay(5)
if (vms == 100)
{
vsec = vsec + 1
digitalWrite(sec, HIGH)
digitalWrite(sec, LOW)
vms = 0
}
if (vsec == 60)
{
vmin = vmin + 1
digitalWrite(Min, HIGH)
digitalWrite(Min, LOW)
digitalWrite(reset_pin, HIGH)
digitalWrite(reset_pin, LOW)
vsec = 0
}
}
}
void start()
{
Run = true
}
void Stop()
{
Run = false
}
//----------------Program Developed by R.GIRISH---------------//

Сада је закључен код.

Штоперица специјално развијена за ателете

На крају, научимо како се горе наведени концепти заправо могу надоградити за спортисте који желе да развију своје вештине трчања, а да не зависе од других за неопходан старт и заустављање тајмера / штоперице. Боље је аутоматски покренути тајмер откривањем вашег кретања него да неко покреће / зауставља штоперицу, што може додати и време реакције.

НАПОМЕНА: Овај пројекат је дизајниран за мерење времена између тачке „А“ до тачке „Б“ коју истовремено покрива ЈЕДАН корисник.

Постава се састоји од два ласера ​​постављена на почетну и крајњу тачку, два ЛДР-а су такође постављена насупрот два ласерска модула. Када спортиста прекине 'почетни' ласер, време почиње да се рачуна, а када спортиста дође до краја, прекида 'завршни' ласер и тајмер се зауставља и приказује протекло време између две тачке. Ово је метода која се користи за мерење протеклог времена у предложеној идеји.

Погледајмо детаљно сваку компоненту кола.

Детаљи о компонентама

Коло је прилично једноставно, састоји се од 16 к 2 ЛЦД модула, мало отпорника, два ЛДР-а и дугмета.

Интерфејс између ЛЦД-а и ардуина је стандардни. Сличну везу можемо наћи у многим другим пројектима заснованим на ЛЦД-у.

Два аналогна пина А0 и А1 користе се за откривање ласерских прекида. Аналогни пин А2 повезан је дугметом који служи за активирање штоперице.

Три отпорника, два 4.7К и један 10К су спуштајући отпорници који помажу улазним пиновима да остану на ниском нивоу.

Потенциометар од 10К је обезбеђен за подешавање контраста у ЛЦД модулу ради оптималне видљивости.

Предложено коло је дизајнирано са механизмом за откривање кварова за ласере. Ако је било који од ласера ​​оштећен или није правилно усклађен са ЛДР-ом, на ЛЦД екрану ће се приказати порука о грешци.

· Ако СТАРТ ласер не ради, приказује се „ласерски старт“ не ради “

· Ако СТОП ласер не ради, приказује се „стоп“ ласер не ради “

· Ако оба ласера ​​не раде, приказује се „Оба ласера ​​не раде“

· Ако оба ласера ​​исправно функционишу, приказује се „Оба ласера ​​раде у реду“

Порука о грешци се појављује док се ласерски модул не поправи или док се поравнање не изведе правилно са ЛДР.

Једном када овај корак буде без проблема, систем прелази у стање приправности и приказује „-систем у стању приправности-“. У овом тренутку корисник може активирати поставку притиском на тастер у било ком тренутку.

Једним притиском на дугме систем је спреман да детектује кретање корисника и приказује „Систем је спреман“.

Тркач се може налазити на неколико центиметара од ласера ​​„старт“.

Ако је ласер „старт“ прекинут, време почиње да се броји и на екрану се приказује „Време се рачуна ...“ Време се израчунава у позадини.

Протекло време се неће приказати док тркач не достигне / не прекине ласер за заустављање. То је зато што приказивање протеклог времена на ЛЦД-у, као што то чини традиционална штоперица, захтева неколико додатних упутстава која треба извршити у микроконтролеру, што знатно погоршава тачност подешавања.

НАПОМЕНА: Притисните дугме за ресетовање на ардуину да бисте очистили очитавања.

Како поставити коло на тркачкој стази:

Молимо користите дебеле жице за повезивање између ЛДР-ова и ардуино кола, јер удаљеност између ове две може бити неколико метара међусобно, а напон не сме значајно пасти. Удаљеност између ЛДР1 и ЛДР2 може бити највише неколико стотина метара.

Како монтирати ЛДР:

ЛДР мора бити монтиран унутар шупље непрозирне цеви, а предњи део такође мора бити покривен, а направљена је само рупа пречника неколико милиметара која омогућава улазак ласерског зрака.

ЛДР мора бити заштићен од директне сунчеве светлости, јер се не може разликовати од ласерског зрака и другог извора светлости и можда неће регистровати кретање корисника.

Програмски код:

//-------- Program developed by R.GIRISH-------//
#include
LiquidCrystal lcd(12,11,5,4,3,2)
int strt = A0
int stp = A1
int btn = A2
int M = 0
int S = 0
int mS = 0
float dly = 10.0
void setup()
{
lcd.begin(16,2)
pinMode(strt,INPUT)
pinMode(stp,INPUT)
pinMode(btn,INPUT)
}
void loop()
{
if(digitalRead(strt)==HIGH && digitalRead(stp)==HIGH)
{
lcd.setCursor(0,0)
lcd.print('Both lasers are')
lcd.setCursor(0,1)
lcd.print(' working fine')
delay(4000)
{
while(digitalRead(btn)==LOW)
{
lcd.clear()
lcd.print('-System Standby-')
lcd.setCursor(0,1)
lcd.print('Press Start btn')
delay(100)
}
lcd.clear()
lcd.setCursor(0,0)
lcd.print('System is ready')
lcd.setCursor(0,1)
lcd.print('----------------')
while(digitalRead(strt)==HIGH)
{
delay(1)
}
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Time is being')
lcd.setCursor(0,1)
lcd.print('Calculated......')
while(digitalRead(stp)==HIGH)
{
delay(dly)
mS = mS+1
if(mS==100)
{
mS=0
S = S+1
}
if(S==60)
{
S=0
M = M+1
}
}
while(true)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print(M)
lcd.print(':')
lcd.print(S)
lcd.print(':')
lcd.print(mS)
lcd.print(' (M:S:mS)')
lcd.setCursor(0,1)
lcd.print('Press Reset')
delay(1000)
}
}
}
if(digitalRead(strt)==HIGH && digitalRead(stp)==LOW)
{
lcd.setCursor(0,0)
lcd.print(''Stop' laser is')
lcd.setCursor(0,1)
lcd.print(' not working')
delay(100)
}
if(digitalRead(strt)==LOW && digitalRead(stp)==HIGH)
{
lcd.setCursor(0,0)
lcd.print(''Start' laser is')
lcd.setCursor(0,1)
lcd.print(' not working')
delay(100)
}
if(digitalRead(strt)==LOW && digitalRead(stp)==LOW)
{
lcd.setCursor(0,0)
lcd.print('Both lasers are')
lcd.setCursor(0,1)
lcd.print(' not working')
delay(100)
}
lcd.clear()
}
//-------- Program developed by R.GIRISH-------//

Ауторски прототип:

Надоградња са Сплит Тимер Фацилити

Предложени круг аутоматске штоперице са подељеним тајмером је продужење аутоматског штоперице, где штоперица аутоматски прати време чим соло тркач напусти почетну тачку, а тајмер се заустави и покаже протекло време док тркач стигне до крајње тачке.

Увод

Овај пројекат је предложио један од страствених читалаца ове веб странице господин Андрев Валкер.

У овом пројекту уводимо још 4 ЛДР-а за мерење времена поделе соло тркача. Укупно постоји 6 ЛДР-а, сви они могу да се поставе на стазу за трчање са једнаким растојањем између њих или у зависности од околности и избора корисника.

Већина хардвера остаје непромењена, осим додавања 4 ЛДР-а, али је код претрпео огромне модификације.

Шематски дијаграм који приказује време раздвајања:

Аутоматска штоперица са подељеним временом

Горњи круг се састоји од неколико компоненти и прилагођен је почетницима. Даље објашњење није потребно, само жица према схеми кола.

Како повезати ЛДР-ове:

ЛДР 2 је приказан на главној схеми кола, паралелно повезује још 4 ЛДР-а, као што је приказано на горњем дијаграму.

Дијаграм распореда:

Горе наведено је основни аранжман о постављању ласера. Имајте на уму да удаљеност између ЛДР-а може сам изабрати корисник у зависности од дужине стазе.

Програм:

//------------Developed By R.Girish-------//
#include
LiquidCrystal lcd(12,11,5,4,3,2)
const int start = A2
const int strt = A0
const int END = A1
boolean y = true
boolean x = true
unsigned int s1 = 0
unsigned int s2 = 0
unsigned int s3 = 0
unsigned int s4 = 0
unsigned int s5 = 0
unsigned int m1 = 0
unsigned int m2 = 0
unsigned int m3 = 0
unsigned int m4 = 0
unsigned int m5 = 0
unsigned int ms1 = 0
unsigned int ms2 = 0
unsigned int ms3 = 0
unsigned int ms4 = 0
unsigned int ms5 = 0
unsigned int S = 0
unsigned int M = 0
unsigned int mS = 0
unsigned int count = 0
void setup()
{
lcd.begin(16,2)
pinMode(start, INPUT)
pinMode(strt, INPUT)
pinMode(END, INPUT)
if(digitalRead(strt) == LOW)
{
while(true)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Start Laser is')
lcd.setCursor(0,1)
lcd.print(' not working')
delay(2500)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Please align the')
lcd.setCursor(0,1)
lcd.print('lasers properly')
delay(2500)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('and press reset.')
delay(2500)
}
}
if(digitalRead(END) == LOW)
{
while(true)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('All 5 lasers')
lcd.setCursor(0,1)
lcd.print('are misaligned')
delay(2500)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Please align the')
lcd.setCursor(0,1)
lcd.print('lasers properly')
delay(2500)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('and press reset.')
delay(2500)
}
}
lcd.clear()
lcd.setCursor(0,0)
lcd.print('-System Standby-')
lcd.setCursor(0,1)
lcd.print('Press Start btn')
if(digitalRead(start) == LOW)
{
while(x)
{
if(digitalRead(start) == HIGH)
{
x = false
}
}
}
lcd.clear()
lcd.setCursor(0,0)
lcd.print('System is ready')
lcd.setCursor(0,1)
lcd.print('----------------')
while(y)
{
if(digitalRead(strt) == LOW)
{
y = false
}
}
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Time is being')
lcd.setCursor(0,1)
lcd.print('Calculated....')
mS = 12
}
void loop()
{
delay(1)
mS = mS + 1
if(mS==1000)
{
mS=0
S = S+1
}
if(S==60)
{
S=0
M = M+1
}
if(digitalRead(END) == LOW)
{
count = count + 1
if(count == 1)
{
ms1 = mS
s1 = S
m1 = M
delay(500)
}
if(count == 2)
{
ms2 = mS
s2 = S
m2 = M
delay(500)
}
if(count == 3)
{
ms3 = mS
s3 = S
m3 = M
delay(500)
}
if(count == 4)
{
ms4 = mS
s4 = S
m4 = M
delay(500)
}
if(count == 5)
{
ms5 = mS
s5 = S
m5 = M
Display()
}
}
}
void Display()
{
ms1 = ms1 + 500
ms2 = ms2 + 500
ms3 = ms3 + 500
ms4 = ms4 + 500
ms5 = ms5 + 500
if(ms1 >= 1000)
{
ms1 = ms1 - 1000
s1 = s1 + 1
if(s1 >= 60)
{
m1 = m1 + 1
}
}
if(ms2 >= 1000)
{
ms2 = ms2 - 1000
s2 = s2 + 1
if(s2 >= 60)
{
m2 = m2 + 1
}
}
if(ms3 >= 1000)
{
ms3 = ms3 - 1000
s3 = s3 + 1
if(s3 >= 60)
{
m3 = m3 + 1
}
}
if(ms4 >= 1000)
{
ms4 = ms4 - 1000
s4 = s4 + 1
if(s4 >= 60)
{
m4 = m4 + 1
}
}
if(ms5 >= 1000)
{
ms5 = ms5 - 1000
s5 = s5 + 1
if(s5 >= 60)
{
m5 = m5 + 1
}
}
while(true)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Spilt 1)')
lcd.print(m1)
lcd.print(':')
lcd.print(s1)
lcd.print(':')
lcd.print(ms1)
lcd.setCursor(0,1)
lcd.print('Split 2)')
lcd.print(m2)
lcd.print(':')
lcd.print(s2)
lcd.print(':')
lcd.print(ms2)
delay(2500)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Split 3)')
lcd.print(m3)
lcd.print(':')
lcd.print(s3)
lcd.print(':')
lcd.print(ms3)
lcd.setCursor(0,1)
lcd.print('Split 4)')
lcd.print(m4)
lcd.print(':')
lcd.print(s4)
lcd.print(':')
lcd.print(ms4)
delay(2500)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Split 5)')
lcd.print(m5)
lcd.print(':')
lcd.print(s5)
lcd.print(':')
lcd.print(ms5)
lcd.setCursor(0,1)
lcd.print('---Press Reset--')
delay(2500)
}
}
//------------Developed By R.Girish-------//

Како управљати овом аутоматском штоперицом:

• Са завршеним подешавањем, прво укључите ласере, а затим следећи укључите коло Ардуино.
• Ако су сви ласери правилно поравнати са ЛДР-овима, на екрану се неће појавити поруке о грешкама. Ако постоје, поравнајте их правилно.
• Сада коло приказује „Систем је у стању приправности“. Сада притисните дугме „старт“ и на њему ће се приказати „Систем је спреман“.
• У овом тренутку, када соло играч прекида сноп светлости ЛДР 1, тајмер се покреће и приказује „Време се рачуна ...“.
• Чим играч досегне крајњу тачку, тј. ЛДР 6, тајмер се зауставља и приказује време поделе од 5 које бележи коло.
• Корисник мора притиснути дугме за ресетовање на ардуину да би ресетовао тајмер.
Зашто ова аутоматска штоперица не може приказати мерење времена уживо на екрану као што то чини традиционална штоперица (већ приказује статични текст „Време се рачуна….“)?
Да би приказао време у реалном времену, Ардуино мора извршити додатна упутства на ЛЦД екрану. Ово ће додати неколико микросекунди до неколико милисекунди кашњења главном делу кода за праћење времена, што ће довести до нетачних резултата.

Ако имате било каквих додатних питања, изнесите их кроз одељак за коментаре.




Претходно: Ардуино ЛЦД КеиПад Схиелд (СКУ: ДФР0009) Табела података Следеће: Ардуино случајни РГБ круг генератора светлости