ஓட்டப்பந்தய வீரர்கள், விளையாட்டு வீரர்கள் மற்றும் விளையாட்டு வீரர்களுக்கான தானியங்கி நிறுத்தக் கண்காணிப்பை உருவாக்குதல்

சிக்கல்களை அகற்ற எங்கள் கருவியை முயற்சிக்கவும்





இந்த இடுகையில் நாம் ஒரு ஸ்டாப்வாட்சை உருவாக்கப் போகிறோம், இது ரன்னர் இயக்கத் தொடங்கும் போது தானாகவே டைமரைத் தொடங்குகிறது மற்றும் ரன்னர் முடிவை அடையும் போது டைமர் நிறுத்தப்படும். தொடக்க மற்றும் முடிவு புள்ளிக்கு இடையில் கழிந்த நேரம் 16 x 2 எல்சிடியில் காட்டப்படும்.

முதலில் ஒரு எளிய மற்றும் மிகவும் துல்லியமான ஆர்டுயினோ ஸ்டாப் வாட்ச் சர்க்யூட்டை எவ்வாறு கட்டமைப்பது என்பதைக் கற்றுக்கொள்வதன் மூலம் ஆரம்பிக்கலாம்.



ஒரு ஸ்டாப்வாட்ச் என்பது கைமுறையாக கட்டுப்படுத்தப்பட்ட நேர கடிகார சாதனம் ஆகும், இது ஒரு குறிப்பிட்ட நேரத்திலிருந்து செயல்படுத்தப்பட்ட காலத்தின் நீளத்தை அளவிடுவதற்காக வடிவமைக்கப்பட்டுள்ளது, மேலும் அது இறுதியாக செயலிழக்கப்பட்டது. அதே சாதனத்தின் ஒரு பெரிய மாறுபாடு அழைக்கப்படுகிறது நிறுத்த கடிகாரம் தூரத்திலிருந்து நடவடிக்கையை கண்காணிக்கப் பயன்படுகிறது மற்றும் பொதுவாக விளையாட்டு அரங்கம் போன்றவற்றில் காணப்படுகிறது.

மெக்கானிக்கல் Vs எலக்ட்ரானிக் ஸ்டாப்வாட்ச்

முன்னதாக பாரம்பரிய மெக்கானிக்கல் ஹேண்ட்ஹெல்ட் ஸ்டாப்வாட்ச் மிகவும் பொதுவானதாக இருந்தது, மேலும் அனைவராலும் இந்த நோக்கத்திற்காக பயன்படுத்தப்பட்டது.



இயந்திர அமைப்பில் ஸ்டாப் வாட்ச் செயல்பாடுகளை இயக்க இரண்டு பத்திரிகை பொத்தான்கள் இருந்தன. ஒன்று ஒருமுறை அழுத்துவதன் மூலம் நிறுத்த கடிகாரத்தைத் தொடங்குவதற்கும், கழிந்த நேரத்தை பதிவு செய்வதற்காக அதே பொத்தானை மீண்டும் அழுத்துவதன் மூலம் நேரத்தை நிறுத்துவதற்கும் .... கடிகாரத்தை மீண்டும் பூஜ்ஜியத்திற்கு மீட்டமைக்க இரண்டாவது பொத்தான் பயன்படுத்தப்பட்டது.

மெக்கானிக்கல் ஸ்டாப் கடிகாரம் அடிப்படையில் வசந்த சக்தி மூலம் வேலைசெய்தது, இது கடிகார சாதனத்தின் மேற்புறத்தில் கொடுக்கப்பட்ட முழங்கால்களை மாற்றுவதன் மூலம் கைமுறையாக முறுக்கு தேவைப்படுகிறது.

இருப்பினும் நவீன டிஜிட்டல் நிறுத்த கடிகாரங்களுடன் ஒப்பிடும்போது, ​​இயந்திர வகைகளை மில்லி விநாடிகளின் வரம்பில் கணிசமாக பழமையானதாகவும் துல்லியமாகவும் கருதலாம்.

ஒரு Arduino ஐப் பயன்படுத்துதல்

இன்று மைக்ரோகண்ட்ரோலரின் வருகையுடன், இந்த நிறுத்த கடிகாரங்கள் மைக்ரோ செகண்ட் வரம்பிற்கு மிகவும் துல்லியமாகவும் நம்பகத்தன்மையுடனும் மாறிவிட்டன.

இங்கே வழங்கப்பட்ட ஆர்டுயினோ ஸ்டாப் வாட்ச் சர்க்யூட் இந்த நவீன மைக்ரோகண்ட்ரோலர் இயங்கும் வடிவமைப்பில் ஒன்றாகும், இது மிகவும் துல்லியமானது வணிக ரீதியான நவீன ஸ்டாப் வாட்ச் கேஜெட்களுடன் இணையாக இருக்கும் என்று எதிர்பார்க்கலாம்.

முன்மொழியப்பட்ட ஆர்டுயினோ ஸ்டாப் கடிகார சுற்று எவ்வாறு உருவாக்குவது என்பதைக் கற்றுக்கொள்வோம்:

கட்டுமானத்திற்கான பின்வரும் மசோதா பொருட்கள் உங்களுக்குத் தேவைப்படும்:

வன்பொருள் தேவை

ஒரு Arduino LCD KeyPad கவசம் (SKU: DFR0009)

ஒரு Arduino LCD KeyPad கவசம் (SKU: DFR0009)

ஒரு Arduino ONE போர்டு

Arduino UNO

ஒரு அர்டுடினோ யூ.எஸ்.பி கேபிள்

arduino usb கேபிள்

மேலே உள்ள பொருளை நீங்கள் பெற்று, அவற்றை ஒருவருக்கொருவர் இணைத்தவுடன், இது பின்வரும் கொடுக்கப்பட்ட ஸ்கெட்ச் குறியீட்டை உங்கள் ஆர்டுயினோ போர்டில் உள்ளமைப்பது மற்றும் ஸ்டாப் கடிகார செயல்பாடுகளின் மந்திரத்தைப் பார்ப்பது பற்றியது.

குறியீடு

/*
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 டிஸ்ப்ளேக்கள், இரண்டு நிமிடங்கள் மற்றும் இரண்டு விநாடிகள் (எம்.எம்: எஸ்.எஸ்) உள்ளமைவுடன் வடிவமைக்க பரிந்துரைத்தார். ஆனால் நம்மில் பெரும்பாலோருக்கு இது சாத்தியமான வடிவமைப்பாக இருக்காது, எனவே மில்லி விநாடி வரம்பிற்கு மேலும் இரண்டு காட்சியைச் சேர்த்துள்ளோம், எனவே இப்போது முன்மொழியப்பட்ட வடிவமைப்பு MM: SS: mS உள்ளமைவில் இருக்கும்.

சில காரணங்களால் உங்களுக்கு எம்.எம்: எஸ்.எஸ் உள்ளமைவு தேவைப்பட்டால், மில்லி விநாடி வரம்பு 7 பிரிவு காட்சிகள் மற்றும் அதன் இயக்கி ஐ.சி.களை நீங்கள் இணைக்க வேண்டிய அவசியமில்லை, சுற்றுகளின் முழு செயல்பாடும் இன்னும் பாதிக்கப்படாமல் இருக்கும்.

சுற்று:

முன்மொழியப்பட்ட ஸ்டாப்வாட்சில் ஆறு ஐசி 4026 உள்ளது, இது ஏழு பிரிவு காட்சி இயக்கி, ஆறு 7 பிரிவு எல்இடி காட்சிகள், ஒரு அர்டுயினோ போர்டு, இரண்டு புஷ் பொத்தான்கள் மற்றும் 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 பிரிவு காட்சியுடன் Arduino ஐப் பயன்படுத்துவதை நிறுத்து

சுற்று 9 வி பேட்டரியிலிருந்து இயக்கப்படலாம். இங்கே இரண்டு பொத்தான்கள் நேரம் தொடங்குவதற்கு ஒன்று மற்றும் நிறுத்த மற்றொரு பொத்தான்கள். Arduino இல் மீட்டமை பொத்தானை அழுத்துவதன் மூலம், நேர எண்ணிக்கை காட்சிக்கு பூஜ்ஜியமாக மீட்டமைக்கப்படும்.

இரண்டு புஷ் பொத்தான் பின் # 2 மற்றும் # 3 உடன் இணைக்கப்பட்டுள்ளது, அவை Arduino / Atmega328P மைக்ரோகண்ட்ரோலரின் வன்பொருள் குறுக்கீடு ஆகும்.

குறுக்கீடு என்றால் என்ன என்பதைப் புரிந்துகொள்வோம்:

இரண்டு வகையான குறுக்கீடுகள் உள்ளன: வன்பொருள் குறுக்கீடு மற்றும் மென்பொருள் குறுக்கீடு. இங்கே நாம் வன்பொருள் குறுக்கீட்டை மட்டுமே பயன்படுத்துகிறோம்.

குறுக்கீடு என்பது மைக்ரோகண்ட்ரோலருக்கு ஒரு சமிக்ஞையாகும், இது மைக்ரோகண்ட்ரோலரை ஒரு நிகழ்வுக்கு உடனடியாக பதிலளிக்க வைக்கும்.

ATmega328P மைக்ரோகண்ட்ரோலர் முள் # 2 மற்றும் # 3 உடன் Arduino பலகைகளில் இரண்டு வன்பொருள் குறுக்கீடு ஊசிகள் மட்டுமே உள்ளன. Arduino மெகாவில் இரண்டுக்கும் மேற்பட்ட வன்பொருள் குறுக்கீடு ஊசிகளும் உள்ளன.

மைக்ரோகண்ட்ரோலர்களால் ஒரே நேரத்தில் இரண்டு செயல்பாடுகளைச் செய்ய முடியாது. எடுத்துக்காட்டாக, பொத்தானை அழுத்தவும் எண்களை எண்ணவும் சரிபார்க்கவும்.

மைக்ரோகண்ட்ரோலர்களால் ஒரே நேரத்தில் இரண்டு நிகழ்வுகளை இயக்க முடியாது, பொத்தானை அழுத்தவும் எண்களை எண்ணவும் ஒரு குறியீட்டை எழுதினால், மைக்ரோகண்ட்ரோலர் பொத்தானை அழுத்தக் கண்டறிதல் குறியீட்டைப் படிக்கும்போது மட்டுமே பொத்தானை அழுத்தவும் கண்டறியப்படும், மீதமுள்ள நேரம் (எண்களைக் கணக்கிடுகிறது) பொத்தான் வேலை செய்யாது.

எனவே பொத்தானை அழுத்துவதைக் கண்டறிவதில் தாமதம் ஏற்படும், சில காரணங்களால் குறியீடு தற்காலிகமாக நிறுத்தப்பட்டால், பொத்தான் பத்திரிகை ஒருபோதும் கண்டறியப்படாமல் போகலாம். இந்த வகையான சிக்கல்களைத் தவிர்க்க குறுக்கீடு அறிமுகப்படுத்தப்பட்டுள்ளது.

குறுக்கீடு சமிக்ஞைக்கு எப்போதும் அதிக முன்னுரிமை அளிக்கப்படுகிறது, முக்கிய செயல்பாடு (குறியீட்டின் முக்கிய கோடுகள்) நிறுத்தப்பட்டு அந்த குறிப்பிட்ட குறுக்கீட்டிற்கு ஒதுக்கப்பட்ட (குறியீட்டின் மற்றொரு பகுதி) செயல்பாட்டை இயக்கும்.

ஸ்டாப்வாட்ச் அல்லது பாதுகாப்பு அமைப்புகள் போன்ற முக்கியமான நேர பயன்பாடுகளுக்கு இது மிகவும் முக்கியமானது, அங்கு ஒரு நிகழ்வுக்கு பதிலளிக்கும் வகையில் செயலி உடனடி நடவடிக்கை எடுக்க வேண்டும்.

Arduino இல் வன்பொருள் குறுக்கீட்டை இவ்வாறு ஒதுக்குகிறோம்:

attachInterrupt (0, தொடக்க, RISING)

  • “0” என்பது குறுக்கீடு எண் பூஜ்ஜியம் (மைக்ரோகண்ட்ரோலர்களில் எல்லாம் பூஜ்ஜியத்திலிருந்து தொடங்குகிறது) இது முள் # 2 ஆகும்.
  • “தொடக்கம்” என்பது குறுக்கீடு செயல்பாட்டின் பெயர், நீங்கள் இங்கே எதையும் பெயரிடலாம்.
  • முள் # 2 (இது குறுக்கீடு பூஜ்ஜியமாகும்) அதிகமாக இருந்தால் “ரைசிங்”, குறுக்கீடு செயல்பாடு இயங்குகிறது.

attachInterrupt (1, நிறுத்து, ரைசிங்)

  • “1” என்பது பின் # 3 என்ற குறுக்கீடு எண்.
  • “நிறுத்து” என்பது குறுக்கீட்டின் பெயர்.

'RISING' ஐ 'FALLING' உடன் மாற்றலாம், இப்போது குறுக்கீடு முள் குறைவாக செல்லும் போது குறுக்கீடு செயல்பாடு இயங்குகிறது.

“ரைசிங்” ஐ “சேஞ்ச்” உடன் மாற்றலாம், இப்போது குறுக்கீடு முள் உயரத்திலிருந்து குறைந்த அல்லது குறைந்த உயரத்திற்கு செல்லும் போதெல்லாம், குறுக்கீடு செயல்பாடு செயல்படுகிறது.

குறுக்கீடு செயல்பாடு பின்வருமாறு ஒதுக்கப்படலாம்:

void start () // start என்பது குறுக்கீட்டின் பெயர்.

{

// நிரல் இங்கே

}

குறுக்கீடு செயல்பாடு முடிந்தவரை குறுகியதாக இருக்க வேண்டும் மற்றும் தாமதம் () செயல்பாட்டைப் பயன்படுத்த முடியாது.

Arduino தொடர்பான வன்பொருள் குறுக்கீடு மென்பொருள் குறுக்கீடு எதிர்கால கட்டுரையில் விளக்கப்படும் என்று அது முடிகிறது.

ஊசிகளை குறுக்கிட தொடக்க மற்றும் நிறுத்த புஷ் பொத்தான்களை ஏன் இணைத்தோம் என்பது இப்போது உங்களுக்குத் தெரியும்.

வரைபடத்தின் படி சுற்றுவட்டத்தை இணைக்கவும் மீதமுள்ள சுற்று சுய விளக்கமாகும்.

திட்டம்:

//----------------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 x 2 எல்சிடி தொகுதி, சில மின்தடையங்கள், இரண்டு எல்.டி.ஆர் மற்றும் ஒரு புஷ் பொத்தானைக் கொண்டுள்ளது.

எல்.சி.டி மற்றும் அர்டுயினோ இடையேயான இடைமுகம் நிலையானது, பல எல்.சி.டி அடிப்படையிலான திட்டங்களிலும் இதேபோன்ற தொடர்பைக் காணலாம்.

லேசர் குறுக்கீடுகளைக் கண்டறிய இரண்டு அனலாக் பின்ஸ் A0 மற்றும் A1 பயன்படுத்தப்படுகின்றன. அனலாக் முள் A2 புஷ் பொத்தானுடன் இணைக்கப்பட்டுள்ளது, இது ஸ்டாப்வாட்சைக் கையாள பயன்படுகிறது.

மூன்று மின்தடையங்கள், இரண்டு 4.7 கே மற்றும் ஒரு 10 கே ஆகியவை புல்-டவுன் மின்தடையங்கள் ஆகும், இது உள்ளீட்டு ஊசிகளை குறைவாக இருக்க உதவுகிறது.

உகந்த தெரிவுநிலைக்கு எல்சிடி தொகுதியில் மாறுபாட்டை சரிசெய்ய 10 கே பொட்டென்டோமீட்டர் வழங்கப்படுகிறது.

முன்மொழியப்பட்ட சுற்று லேசர்களுக்கான தவறு கண்டறிதல் பொறிமுறையுடன் வடிவமைக்கப்பட்டுள்ளது. லேசரில் ஏதேனும் தவறு இருந்தால் அல்லது எல்.டி.ஆருடன் சரியாக சீரமைக்கப்படவில்லை என்றால், அது எல்சிடி டிஸ்ப்ளேயில் பிழை செய்தியைக் காண்பிக்கும்.

ST START லேசர் செயல்படவில்லை என்றால், அது “‘ தொடக்க ’லேசர் செயல்படவில்லை” என்பதைக் காட்டுகிறது

ST STOP லேசர் செயல்படவில்லை என்றால், அது “‘ நிறுத்து ’லேசர் செயல்படவில்லை” என்பதைக் காட்டுகிறது

Both இரண்டு ஒளிக்கதிர்களும் செயல்படவில்லை என்றால், அது “இரண்டு ஒளிக்கதிர்களும் இயங்கவில்லை” என்பதைக் காட்டுகிறது

Both இரண்டு ஒளிக்கதிர்களும் சரியாக இயங்கினால், அது “இரண்டு ஒளிக்கதிர்களும் நன்றாக வேலை செய்கின்றன” என்பதைக் காட்டுகிறது

எல்.டி.ஆர் உடன் லேசர் தொகுதி சரி செய்யப்பட்டது அல்லது சீரமைப்பு செய்யப்படும் வரை பிழை செய்தி தோன்றும்.

இந்த படி சிக்கலில்லாமல், கணினி காத்திருப்பு பயன்முறையில் சென்று “-சிஸ்டம் காத்திருப்பு-” ஐக் காட்டுகிறது. இந்த கட்டத்தில் பயனர் எந்த நேரத்திலும் புஷ் பொத்தானை அழுத்துவதன் மூலம் அமைப்பைக் கையாள முடியும்.

ஒரு புஷ் பொத்தானை அழுத்தினால், பயனரிடமிருந்து இயக்கத்தைக் கண்டறிய கணினி தயாராக உள்ளது மற்றும் “கணினி தயாராக உள்ளது” என்பதைக் காட்டுகிறது.

ரன்னர் ‘ஸ்டார்ட்’ லேசரிலிருந்து சில அங்குலங்கள் இருக்கலாம்.

“தொடக்க” லேசர் குறுக்கிட்டால் நேரம் எண்ணத் தொடங்குகிறது மற்றும் காட்சிகள் ”நேரம் கணக்கிடப்படுகிறது ……” நேரம் பின் தரையில் கணக்கிடப்படுகிறது.

“நிறுத்து” லேசரை ரன்னர் அடையும் / குறுக்கிடும் வரை கழிந்த நேரம் காட்டப்படாது. ஏனென்றால், எல்.சி.டி.யில் கழிந்த நேரத்தை பாரம்பரிய ஸ்டாப்வாட்ச் போலக் காண்பிப்பதற்கு, மைக்ரோகண்ட்ரோலரில் பல கூடுதல் வழிமுறைகள் செயல்படுத்தப்பட வேண்டும், இது அமைப்பின் துல்லியத்தை கணிசமாகக் குறைக்கிறது.

குறிப்பு: அளவீடுகளை அழிக்க arduino இல் மீட்டமை பொத்தானை அழுத்தவும்.

இயங்கும் பாதையில் சுற்று அமைப்பது எப்படி:

எல்.டி.ஆர்களுக்கும் ஆர்டுயினோ சுற்றுக்கும் இடையில் இணைக்க தயவுசெய்து தடிமனான கம்பிகளைப் பயன்படுத்துங்கள், ஏனெனில் இந்த இரண்டிற்கும் இடையிலான தூரம் பல மீட்டர் இடைவெளியில் இருக்கலாம், மேலும் மின்னழுத்தம் கணிசமாகக் குறையக்கூடாது. எல்.டி.ஆர் 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-------//

இந்த தானியங்கி ஸ்டாப்வாட்சை எவ்வாறு இயக்குவது:

Completed பூர்த்தி செய்யப்பட்ட அமைப்பால், முதலில் ஒளிக்கதிர்களை இயக்கி, அடுத்ததாக ஆர்டுயினோ சுற்று இயக்கவும்.
L அனைத்து லேசர்களும் எல்.டி.ஆர்களுடன் சரியாக சீரமைக்கப்பட்டிருந்தால், காட்சி பிழை செய்திகளுடன் கேட்கப்படாது. ஏதேனும் இருந்தால், அவற்றை ஒழுங்காக சீரமைக்கவும்.
• இப்போது சுற்று “கணினி காத்திருப்பு” என்பதைக் காட்டுகிறது. இப்போது “தொடக்க” பொத்தானை அழுத்தினால் அது “கணினி தயாராக உள்ளது” என்பதைக் காண்பிக்கும்.
Point இந்த கட்டத்தில் தனி பிளேயர் எல்.டி.ஆர் 1 ஒளி கற்றைக்கு குறுக்கிடும்போது, ​​டைமர் தொடங்குகிறது மற்றும் அது “நேரம் கணக்கிடப்படுகிறது…” என்பதைக் காட்டுகிறது.
Player வீரர் இறுதி புள்ளியை அடைந்தவுடன், அதாவது எல்.டி.ஆர் 6, டைமர் நின்று, அது சுற்று மூலம் பதிவு செய்யப்பட்ட 5 பிளவு நேரத்தைக் காட்டுகிறது.
• டைமரை மீட்டமைக்க பயனர் arduino இல் மீட்டமை பொத்தானை அழுத்த வேண்டும்.
பாரம்பரிய ஸ்டாப்வாட்ச் போலவே இந்த தானியங்கி ஸ்டாப்வாட்ச் ஏன் காட்சியில் நேரடி நேரத்தைக் காட்ட முடியாது (மாறாக இது “நேரம் கணக்கிடப்படுகிறது….” என்ற நிலையான உரையைக் காட்டுகிறது)?
நிகழ்நேரத்தில் நேரத்தைக் காட்ட, அர்டுயினோ எல்சிடி காட்சிக்கு கூடுதல் வழிமுறைகளை இயக்க வேண்டும். இது குறியீட்டின் முக்கிய நேர கண்காணிப்பு பகுதிக்கு சில மைக்ரோ விநாடிகளை சில மில்லி விநாடிகள் தாமதப்படுத்தும், இது தவறான முடிவுகளுக்கு வழிவகுக்கும்.

உங்களிடம் மேலும் கேள்விகள் இருந்தால், தயவுசெய்து கருத்துப் பிரிவின் மூலம் வெளிப்படுத்தவும்.




முந்தைய: Arduino LCD KeyPad Shield (SKU: DFR0009) தரவுத்தாள் அடுத்து: அர்டுடினோ ரேண்டம் ஆர்ஜிபி லைட் ஜெனரேட்டர் சர்க்யூட்