ஒரு சுவிட்சின் கண்காணிப்பு நிலை (டிஜிட்டல் ரீட் சீரியல்) - அர்டுயினோ அடிப்படைகள்

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





இந்த ஆர்டுயினோ அடிப்படைகள் ஒரு குறியீட்டை செயல்படுத்தும் முறையைப் பற்றி விவாதிக்கின்றன, இதன் மூலம் வெளிப்புற புஷ்-பொத்தானின் ஆன் அல்லது ஆஃப் நிலை அர்டுயினோவுக்குள் படிக்கப்படலாம் அல்லது கண்காணிக்கப்படலாம்.

டிஜிட்டல் ரீட் சீரியல்

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



உங்கள் Arduino வாரியத்திற்கு அதிகமாக, உங்களுக்கு பின்வரும் அடிப்படை உருப்படிகள் தேவைப்படும்:

வன்பொருள்

ஒரு தற்காலிக சுவிட்ச், பொத்தான் அல்லது புஷ்-டு-ஆன் சுவிட்ச்



10 கி, 1/4 வாட் ஓம் மின்தடை

பிரட்போர்டு
ஹூக்-அப் அல்லது ஜம்பர் கம்பி இணைப்புகள்.

சுற்று செயல்பாடு

செயல்பாடு பின்வரும் படிகளுடன் செய்யப்படலாம்:

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

மூன்றாவது கம்பி டிஜிட்டல் முள் 2 ஐ புஷ்-டு-ஆன் சுவிட்சின் தடங்களில் ஒன்றில் இணைக்கப் பயன்படுகிறது.

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

மேலே உள்ள இணைப்புகள் மூலம், சுவிட்ச் ஒரு புஷ் கொடுக்கும்போது சுற்றுக்குள் இரட்டை செயலை மாற்றுகிறது அல்லது செய்கிறது.

பொதுவாக சுவிட்ச் துண்டிக்கப்பட்ட நிலையில் இருக்கும்போது, ​​அதன் இரண்டு தடங்களும் தனிமைப்படுத்தப்படுகின்றன, அதாவது புல்-டவுன் மின்தடையின் வழியாக தரையுடன் இணைக்கப்பட்டுள்ள முள் குறைந்த அல்லது தர்க்க 0 நிலை.

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

டிஜிட்டல் ஐ / ஓ பின்அவுட்களை மீதமுள்ள விஷயங்களிலிருந்து தனிமைப்படுத்துவது, எல்.ஈ.டியை வைக்கோலுக்குச் செல்லும்படி கட்டாயப்படுத்தி ஒழுங்கற்ற ஒளிரும். உள்ளீடு எதற்கும் வழங்கப்படாதது, அல்லது ஒரு 'தொங்கும்' நிலையில் வைக்கப்படுவதே இதற்குக் காரணம் - அதாவது இது எந்தவொரு திட்டவட்டமான தர்க்கத்திற்கும் நியமிக்கப்படவில்லை, உயர்ந்ததாகவோ அல்லது குறைவாகவோ இல்லை (+ 5 வி அல்லது 0 வி), இதுதான் நாங்கள் பணியமர்த்துவதற்கான காரணம் சுவிட்சுடன் இழுக்க-கீழே மின்தடை.

திட்டவட்டமான

குறியீட்டைப் புரிந்துகொள்வது

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

அடுத்த கட்டத்தில், டிஜிட்டல் முள் 2 ஐ தூண்டுகிறோம், புஷ் சுவிட்சுடன் உள்ளீட்டாக வெளியீட்டிற்கு பொறுப்பான முள்: பின்மோட் (2, INPUT) இது எங்கள் 'அமைப்பை' நிறைவு செய்கிறது, இப்போது நாங்கள் எங்கள் குறியீட்டின் முக்கிய வட்டத்திற்குள் செல்கிறோம் .

இங்கே புஷ்பட்டனை அழுத்தும்போது, ​​5 வோல்ட் எங்கள் சுற்று வழியாக செல்ல அனுமதிக்கப்படுகிறது, அதே நேரத்தில் உள்ளீட்டு முள் 10 கிலோஹாம் மின்தடையின் மூலம் தரையுடன் இணைக்கப்படுகிறது.

மேலே உள்ளவை நாம் டிஜிட்டல் உள்ளீட்டை அழைக்கிறோம், இது சுவிட்ச் ஒரு குறிப்பிட்ட மாநிலத்தில் மட்டுமே இருக்கக்கூடிய ஒரு நிலையைக் குறிக்கிறது (அர்டுயினோவால் '1', அல்லது லாஜிக் ஹை என ஏற்றுக்கொள்ளப்பட்டது) அல்லது ஒரு ஆஃப் ஸ்டேட் (காட்சிப்படுத்தப்பட்ட Arduino ஆல் ஒரு '0' அல்லது LOGIC LOW), வேறு எந்த வரையறுக்கப்படாத இடங்களும் இல்லை.

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

சமிக்ஞைகள் '1' அல்லது '0' வடிவத்தில் இருப்பதால் மேலே விவாதிக்கப்பட்டபடி, இங்கே நாம் ஒரு முழு தரவுத்தொகுப்பைப் பயன்படுத்துகிறோம். இந்த மாறியை நாம் சென்சார் மதிப்பு என்று பெயரிடலாம், மேலும் டிஜிட்டல் முள் 2 இல் படிக்கப்படும் எல்லாவற்றையும் ஒத்ததாக அதை சரிசெய்யலாம். இவை அனைத்தும் ஒரு வரி குறியீடு வழியாக அடையக்கூடியவை:

int sensValue = DigitalRead (2) Arduino உள்ளீட்டைப் படித்தவுடன், அதை மீண்டும் தசம மதிப்பின் வடிவத்தில் கணினியில் அச்சிடுங்கள்.

குறியீட்டின் இறுதி வரியில் Serial.println () கட்டளையின் உதவியுடன் இதை செயல்படுத்தலாம்: Serial.println (sensValue)

இதற்குப் பிறகு, அர்டுயினோ டொமைனில் சீரியல் மானிட்டர் தொடங்கப்படும் போதெல்லாம், புஷ் பொத்தானின் போது '0 இன் சங்கிலி திறந்த நிலை, மற்றும் சங்கிலிகள் 1 இன் சந்தர்ப்பங்களில் பொத்தானை மூடிய நிலையில் வைத்திருக்கும்.

/*
DigitalReadSerial
Reads a digital input on pin 2, prints the result to the serial monitor
This example code is in the public domain.
*/
// digital pin 2 has a pushbutton attached to it. Give it a name:
int pushButton = 2

// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600)
// make the pushbutton's pin an input:
pinMode(pushButton, INPUT)
}
// the loop routine runs over and over again forever:
void loop() {
// read the input pin:
int buttonState = digitalRead(pushButton)
// print out the state of the button:
Serial.println(buttonState)
delay(1) // delay in between reads for stability
}




முந்தைய: டைமர் சுற்றுடன் தனிப்பயனாக்கப்பட்ட நீர் பாய்ச்சல் கட்டுப்படுத்தி அடுத்து: அனலாக் டிஜிட்டலாக மாற்றுதல் (அனலாக் சீரியல் படிக்க) - அர்டுடினோ அடிப்படைகள்