உங்கள் வடிவமைப்புகளில் Arduino ஐப் பயன்படுத்தாததற்கு பல காரணங்கள். Arduino Uno இல் அசாதாரண திட்டங்கள் ஆரம்பநிலைக்கான Arduino uno r3 திட்டங்கள்

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

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

Arduino என்றால் என்ன, அது எதற்காக?

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

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

Arduino ஸ்டார்டர் கிட்

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

ஆரம்பநிலைக்கான அடிப்படை Arduino கிட்:வாங்க
பயிற்சி மற்றும் முதல் திட்டங்களுக்கான பெரிய தொகுப்பு:வாங்க
கூடுதல் சென்சார்கள் மற்றும் தொகுதிகளின் தொகுப்பு:வாங்க
Arduino Uno வரியிலிருந்து மிகவும் அடிப்படை மற்றும் வசதியான மாதிரி:வாங்க
எளிதான கற்றல் மற்றும் முன்மாதிரிக்கு சாலிடர்லெஸ் பிரட்போர்டு:வாங்க
வசதியான இணைப்பிகளுடன் கம்பிகளின் தொகுப்பு:வாங்க
LED தொகுப்பு:வாங்க
மின்தடை கருவி:வாங்க
பொத்தான்கள்:வாங்க
பொட்டென்டோமீட்டர்கள்:வாங்க

Arduino IDE மேம்பாட்டு சூழல்

ஃபார்ம்வேரை எழுத, பிழைத்திருத்த மற்றும் பதிவிறக்க நீங்கள் பதிவிறக்கி நிறுவ வேண்டும் Arduino IDE. இது மிகவும் எளிமையானது மற்றும் வசதியான திட்டம். எனது இணையதளத்தில், டெவலப்மென்ட் சூழலை பதிவிறக்கம், நிறுவுதல் மற்றும் கட்டமைக்கும் செயல்முறையை ஏற்கனவே விவரித்துள்ளேன். எனவே இங்கே நான் இணைப்புகளை விட்டு விடுகிறேன் சமீபத்திய பதிப்புதிட்டங்கள் மற்றும்

பதிப்பு விண்டோஸ் மேக் ஓஎஸ் எக்ஸ் லினக்ஸ்
1.8.2

Arduino நிரலாக்க மொழி

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

Arduino நிரலாக்கமானது C++ மொழியின் எளிமையான பதிப்பை முன் வரையறுக்கப்பட்ட செயல்பாடுகளுடன் பயன்படுத்துகிறது. மற்ற C-போன்ற நிரலாக்க மொழிகளைப் போலவே, குறியீடு எழுதுவதற்கும் பல விதிகள் உள்ளன. மிக அடிப்படையானவை இங்கே:

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

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

அனைத்து Arduino firmware இல் குறைந்தது 2 செயல்பாடுகள் இருக்க வேண்டும். இவை அமைவு() மற்றும் லூப்().

அமைப்பு செயல்பாடு

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

இணைக்கப்பட்ட சாதனங்களின் பின்களுடன் கூடிய மாறிகள் int switchPin = 8; int ledPin = 11; // மாறிகள் பொத்தானின் நிலையைச் சேமிக்கும் மற்றும் LED பூலியன் lastButton = குறைந்த; பூலியன் கரண்ட் பட்டன் = குறைந்த; பூலியன் ledOn = தவறான; void setup() (pinMode(switchPin, INPUT); pinMode(ledPin, OUTPUT); ) // பூலியன் debounse (பூலியன் கடைசி) (பூலியன் மின்னோட்டம் = டிஜிட்டல் ரீட்(switchPin); என்றால்(கடைசி != தற்போதைய) (தாமதம் (தாமதம்) 5); தற்போதைய = டிஜிட்டல் ரீட்(switchPin); ) தற்போதைய திரும்ப; ) void loop() ( currentButton = debounse(lastButton); if(lastButton == LOW && currentButton == HIGH) (ledOn = !ledOn; ) lastButton = தற்போதைய பட்டன் ; டிஜிட்டல் ரைட் (ledPin, ledOn); )

இணைக்கப்பட்ட சாதனங்களின் ஊசிகளுடன் // மாறிகள்

int switchPin = 8 ;

int ledPin = 11 ;

// பொத்தான் மற்றும் எல்இடியின் நிலையைச் சேமிக்க மாறிகள்

boolean lastButton = குறைந்த ;

பூலியன் கரண்ட் பட்டன் = குறைந்த ;

பூலியன் ledOn = பொய் ;

வெற்றிட அமைப்பு() (

பின்முறை (சுவிட்ச்பின், இன்புட்);

பின்முறை (லெட்பின், அவுட்புட்);

// debouncing செயல்பாடு

பூலியன் டிபவுன்ஸ் (பூலியன் கடைசி) (

பூலியன் மின்னோட்டம் = டிஜிட்டல் ரீட்(ஸ்விட்ச்பின்);

என்றால் (கடைசி != தற்போதைய ) (

தாமதம்(5);

தற்போதைய = டிஜிட்டல் ரீட் (ஸ்விட்ச்பின்);

திரும்பும் மின்னோட்டம் ;

வெற்றிட சுழற்சி () (

தற்போதைய பட்டன் = debounse (lastButton);

என்றால் (கடைசி பட்டன் == குறைந்த && தற்போதைய பட்டன் == உயர் ) (

ledOn = ! ledOn;

கடைசி பட்டன் = தற்போதைய பட்டன் ;

டிஜிட்டல் ரைட் (ledPin, ledOn);

இந்த ஓவியத்தில் நான் உருவாக்கினேன் கூடுதல் செயல்பாடுதொடர்பு துள்ளுதலை அடக்குவதற்கு debounse. எனது இணையதளத்தில் தொடர்புத் துள்ளல் பற்றிய தகவல் உள்ளது. இந்த பொருளைப் பார்க்க மறக்காதீர்கள்.

PWM Arduino

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

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

Arduino ஒரு உள்ளமைக்கப்பட்ட பல்ஸ் அகல மாடுலேட்டரைக் கொண்டுள்ளது. மைக்ரோகண்ட்ரோலரால் ஆதரிக்கப்படும் பின்களில் மட்டுமே நீங்கள் PWM ஐப் பயன்படுத்த முடியும். எடுத்துக்காட்டாக, Arduino Uno மற்றும் Nano ஆகியவை 6 PWM ஊசிகளைக் கொண்டுள்ளன: இவை பின்கள் D3, D5, D6, D9, D10 மற்றும் D11 ஆகும். மற்ற பலகைகளில் ஊசிகள் வேறுபடலாம். நீங்கள் விரும்பும் பலகையின் விளக்கத்தை நீங்கள் காணலாம்

Arduino இல் PWM ஐப் பயன்படுத்த ஒரு செயல்பாடு உள்ளது. இது 0 முதல் 255 வரையிலான பின் எண் மற்றும் PWM மதிப்பை வாதங்களாக எடுத்துக்கொள்கிறது. 0 என்பது 0% உயர் சமிக்ஞையுடன் நிரப்பவும், 255 என்பது 100% ஆகும். உதாரணத்திற்கு ஒரு எளிய ஓவியத்தை எழுதுவோம். எல்.ஈ.டியை சீராக ஒளிரச் செய்வோம், ஒரு வினாடி காத்திருந்து, சீராக மங்கச் செய்வோம். இந்த செயல்பாட்டைப் பயன்படுத்துவதற்கான எடுத்துக்காட்டு இங்கே:

// LED பின் 11 int ledPin = 11 உடன் இணைக்கப்பட்டுள்ளது; void setup() (pinMode(ledPin, OUTPUT); ) void loop() ( for (int i = 0; i< 255; i++) { analogWrite(ledPin, i); delay(5); } delay(1000); for (int i = 255; i >0; i--) (அனலாக்ரைட்(ledPin, i); தாமதம்(5); )

// LED பின் 11 உடன் இணைக்கப்பட்டுள்ளது

int ledPin = 11 ;

வெற்றிட அமைப்பு() (

பின்முறை (லெட்பின், அவுட்புட்);

வெற்றிட சுழற்சி () (

(int i = 0; i< 255 ; i ++ ) {

அனலாக்ரைட்(ledPin, i);

தாமதம்(5);

தாமதம்(1000);

(int i = 255; i > 0; i -- ) (

Arduino ஐ எவ்வாறு தேர்வு செய்வதுமுதல் முறையாக Arduino ஐப் பயன்படுத்தி ஒரு திட்டத்தை உருவாக்க முடிவு செய்த அனைவருக்கும் இந்த கேள்வி எழுகிறது. தேவையான விவரங்களை நாங்கள் முடிவு செய்தோம்: சென்சார்கள், சென்சார்கள், தொகுதிகள் போன்றவை, மேலும் ஆர்டுயினோ போர்டுகளின் கணிசமான வகைப்படுத்தலை எதிர்கொண்டோம், கூடுதலாக, ஒவ்வொரு போர்டிலும் இரண்டு அல்லது மூன்று ஒப்புமைகள் உள்ளன. சிலர் அதிக விலையுயர்ந்த மற்றும் அதிக சக்தி வாய்ந்தது சிறந்தது என்று நினைக்கிறார்கள், அவர்கள் Arduino Due போன்ற தீவிர தீர்வுகளை வாங்குகிறார்கள், பின்னர் எல்லா ஓவியங்களும் அதில் வேலை செய்யாது என்பதை அவர்கள் உணர்கிறார்கள், மேலும் இதன் முழு சக்தியையும் சமாளிப்பது கடினம். சொந்தமாக சாதனம். மற்றவர்கள் எதிர் பாதையில் சென்று வளக் கட்டுப்பாடுகளை எதிர்கொள்கின்றனர் (நினைவகம், ஊசிகள், துறைமுகங்கள், கடிகார அதிர்வெண், ஊட்டச்சத்து). அந்த தங்க சராசரியை எப்படி கண்டுபிடிப்பது?, அதை கண்டுபிடிக்க முயற்சிப்போம்...

செலுத்து நன்மை மைனஸ்கள்

Arduino Uno

ProMini மற்றும் Nano போன்ற செயல்பாடு
  • அர்டுயினோ குடும்பத்தில் பலகை மிகவும் பொதுவானது; அதற்காக அதிக எண்ணிக்கையிலான பாடங்கள் உருவாக்கப்பட்டுள்ளன.
  • டிஐபி பேனல் இருப்பதால், மைக்ரோகண்ட்ரோலரை மாற்றலாம்
  • Arduino ProMini, Nano மற்றும் Micro போன்ற அதே செயல்பாட்டுடன், பலகை அளவு பல மடங்கு பெரியது

அர்டுயினோ மெகா 2560

  • Arduino UNO க்காக உருவாக்கப்பட்ட கேடயங்கள் பொருத்தமானவை
  • ஊசிகளின் அதிகபட்ச எண்ணிக்கை
  • அனைத்து வகையான நினைவகங்களின் விரிவாக்கப்பட்ட திறன்
  • கம்பிகளைப் பயன்படுத்தாமல் பிரட்போர்டில் நிறுவ முடியாது

அர்டுயினோ லியோனார்டோ

MICRO போன்ற செயல்பாடு

  • Arduino UNO க்காக உருவாக்கப்பட்ட கேடயங்கள் பொருத்தமானவை
  • பலகை Arduino UNO இன் மேம்படுத்தப்பட்ட பதிப்பாகும் மற்றும் அதன் பெரும்பாலான ஓவியங்களுடன் வேலை செய்கிறது
  • கம்பிகளைப் பயன்படுத்தாமல் பிரட்போர்டில் நிறுவ முடியாது
  • Arduino Uno க்காக உருவாக்கப்பட்ட சில ஓவியங்கள் லியோனார்டோவில் வேலை செய்யாது, ஏனெனில்... வெவ்வேறு மைக்ரோகண்ட்ரோலர்கள் பயன்படுத்தப்படுகின்றன

Arduino காரணமாக


  • Arduino Mega போன்ற பின்களின் எண்ணிக்கை
  • இரண்டு அனலாக் வெளியீடுகள் செயல்படுத்தப்பட்டுள்ளன
  • 84 மெகா ஹெர்ட்ஸ் கடிகார அதிர்வெண் கொண்ட சக்திவாய்ந்த 32-பிட் மைக்ரோகண்ட்ரோலரைப் பயன்படுத்துகிறது
  • கம்பிகளைப் பயன்படுத்தாமல் பிரட்போர்டில் நிறுவ முடியாது
  • முழு Arduino குடும்பத்திலும் மிகப்பெரிய பலகை அளவு
  • எல்லா ஓவியங்களும் அதிக கடிகார அதிர்வெண்ணை வழங்குவதில்லை
  • எல்லாம் கவசம் அல்ல 3.3V வரம்பு மின்னழுத்தத்துடன் சமிக்ஞைகளை அனுப்புவதற்கு வழங்கவும்
  • மின்னழுத்தம் 3.3V

Arduino ProMini 3.3V

நானோ மற்றும் UNO போன்ற செயல்பாடுகள்


  • மைக்ரோகண்ட்ரோலரின் மிகக் குறைந்த கடிகார அதிர்வெண், 8 மெகா ஹெர்ட்ஸ் மட்டுமே
  • மின்னழுத்தம் 3.3V

Arduino ProMini 5V

நானோ மற்றும் UNO போன்ற செயல்பாடுகள்

  • ப்ரெட்போர்டில் வரைபடங்களை வடிவமைக்கப் பயன்படுத்தலாம்
  • Arduino குடும்பத்தில் மிகச்சிறிய பலகை
  • சாலிடர் முள் தொடர்புகள் இல்லாமல் வழங்கப்படுகிறது, இது மேற்பரப்பு ஏற்றத்தை அனுமதிக்கிறது
  • Arduino UNO க்காக உருவாக்கப்பட்ட கேடயங்கள் பொருத்தமானவை அல்ல
  • USB கன்ட்ரோலர் இல்லை, இதற்கு வெளிப்புற புரோகிராமர் தேவை

Arduino NANO V3.0

ProMini மற்றும் UNO போன்ற செயல்பாடுகள்


  • ப்ரெட்போர்டில் வரைபடங்களை வடிவமைக்கப் பயன்படுத்தலாம்
  • போர்டு Arduino ProMini ஐ விட சற்று பெரியது, ஆனால் USB போர்ட் உள்ளது மற்றும் வெளிப்புற புரோகிராமரின் பயன்பாடு தேவையில்லை
  • Arduino UNO க்காக உருவாக்கப்பட்ட கேடயங்கள் பொருத்தமானவை அல்ல
  • கட்டுப்படுத்தியுடன் கூடிய USB போர்ட் அறிமுகமானது, பூட்லோடருக்காக ஒதுக்கப்பட்ட ஃபிளாஷ் நினைவகத்தின் அளவை அதிகரிக்க வழிவகுத்தது (Arduino ProMini உடன் ஒப்பிடும்போது)

அர்டுயினோ மைக்ரோ

லியோனார்டோ போன்ற செயல்பாடு


  • ப்ரெட்போர்டில் வரைபடங்களை வடிவமைக்கப் பயன்படுத்தலாம்
  • போர்டு Arduino Nano ஐ விட சற்று பெரியது, ஆனால் Arduino Leonardo இன் அனைத்து செயல்பாடுகளையும் கொண்டுள்ளது.
  • பல்வேறு உருவகப்படுத்துவது சாத்தியமாகும் USB சாதனங்கள்கணினியுடன் இணைக்கப்படும் போது (பலகை ஒரு சுட்டி, விசைப்பலகை போன்றவையாக கண்டறியப்படும்)
  • Arduino UNO க்காக உருவாக்கப்பட்ட கேடயங்கள் பொருத்தமானவை அல்ல
  • USB கன்ட்ரோலர் செயல்பாட்டை மைக்ரோகண்ட்ரோலருக்கு மாற்றுவது துவக்க ஏற்றிக்கு ஒதுக்கப்பட்ட ஃபிளாஷ் நினைவகத்தின் அளவை அதிகரிக்க வழிவகுத்தது.

Arduino தேர்வை பாதிக்கும் முதல் கேள்வி- நீங்கள் எந்த திட்டத்தை செயல்படுத்த விரும்புகிறீர்கள்?

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

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

நீங்கள் உங்கள் சொந்த திட்டத்தை செயல்படுத்த திட்டமிட்டால், பின்னர் Arduino இன் தேர்வு நீக்கும் முறை மூலம் அணுகப்பட வேண்டும். உங்கள் திட்டப்பணியில் Arduino Unoக்கான பின்களுடன் கூடிய தொகுதிகள் இருந்தால், Arduino ProMini 3.3V, Arduino ProMini 5V, Arduino Nano இன் அனலாக் ஆகியவற்றைத் தவிர்க்கவும்.), ஆனால் வேறு வகையான யூ.எஸ்.பி இணைப்பான் இருக்கலாம், அளவு சற்று வித்தியாசமாக இருக்கலாம், வேறு யூ.எஸ்.பி கன்ட்ரோலர், வேறு வகையான மைக்ரோகண்ட்ரோலர் கேஸ், போர்டு நிறம் போன்றவை இருக்கலாம். இந்த பலகைகள் ஒரே தொடரின் அதே ATmega மைக்ரோகண்ட்ரோலரைப் பயன்படுத்துவதால், இந்த பலகைகள் அவற்றின் அசல் செயல்பாட்டை மீண்டும் செய்கின்றன என்பதை இங்கே நீங்கள் புரிந்து கொள்ள வேண்டும் (அவை பெயரில் ஒத்தவை). பலகை பரிமாணங்கள், மைக்ரோகண்ட்ரோலர் வீடுகள் மற்றும் வகை USB போர்ட், புகைப்படத்தில் இருந்து தீர்மானிக்க முடியும். பெயரில் “CH340G” இருப்பதால், USB கட்டுப்படுத்தி Arduino க்கான நிலையான FTDI சிப் அல்ல, ஆனால் அதன் அனலாக் CH340G, எனவே, அத்தகைய Arduino ஐ கணினியுடன் இணைக்க, நீங்கள் CH340G சிப்பிற்கான இயக்கியை நிறுவ வேண்டும். . இந்த பலகைகள் ஒரு முறை இயக்கி நிறுவல் ஒரு சிரமத்திற்கு இல்லை என்று நம்புபவர்களுக்கு ஏற்றது, மேலும் குறைக்கப்பட்ட விலை அசல் பெயரை விட ஒரு நன்மை.

அனைத்து வடிவமைப்பு ஆர்வலர்களிடையே Arduino மிகவும் பிரபலமானது. இதுவரை கேள்விப்படாதவர்களுக்கும் அறிமுகம் செய்து வைக்க வேண்டும்.

Arduino என்றால் என்ன?

Arduino ஐ எவ்வாறு சுருக்கமாக விவரிக்க முடியும்? உகந்த வார்த்தைகளில்இருக்கும்: Arduino என்பது நீங்கள் பலவற்றை உருவாக்கக்கூடிய ஒரு கருவியாகும் மின்னணு சாதனங்கள். சாராம்சத்தில், இது ஒரு உண்மையான பொது நோக்கத்திற்கான வன்பொருள் கணினி தளமாகும். அதை உருவாக்க பயன்படுத்தலாம் எளிய சுற்றுகள், மற்றும் மாறாக சிக்கலான திட்டங்களை செயல்படுத்துவதற்கு.

வடிவமைப்பாளர் அதன் வன்பொருளை அடிப்படையாகக் கொண்டவர், இது உள்ளீடு-வெளியீட்டு பலகை ஆகும். பலகையை நிரல் செய்ய, C/C++ அடிப்படையிலான மொழிகள் பயன்படுத்தப்படுகின்றன. அவை முறையே, செயலாக்கம்/வயரிங் என அழைக்கப்படுகின்றன. குழு C இலிருந்து அவர்கள் தீவிர எளிமையைப் பெற்றனர், இதற்கு நன்றி அவர்கள் எந்தவொரு நபராலும் மிக விரைவாக தேர்ச்சி பெற முடியும், மேலும் நடைமுறையில் அறிவைப் பயன்படுத்துவது குறிப்பிடத்தக்க பிரச்சினை அல்ல. வேலையின் எளிமையை நீங்கள் புரிந்து கொள்ள, Arduino ஆரம்ப வழிகாட்டி-வடிவமைப்பாளர்களுக்கானது என்று அடிக்கடி கூறப்படுகிறது. குழந்தைகள் கூட Arduino பலகைகளை புரிந்து கொள்ள முடியும்.

அதில் என்ன சேகரிக்க முடியும்?

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

கூறுகளை நான் எங்கே வாங்குவது?

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

கூறுகளை கிட் பகுதியாகவோ அல்லது தனித்தனியாகவோ வாங்கலாம். கார்கள், ஹெலிகாப்டர்கள் அசெம்பிள் செய்ய முன் தயாரிக்கப்பட்ட கருவிகள் கூட உள்ளன பல்வேறு வகையானகட்டுப்பாடுகள் அல்லது கப்பல்கள். மேலே உள்ள படத்தில் உள்ளதைப் போன்ற ஒரு செட், சீனாவில் தயாரிக்கப்பட்டது, இதன் விலை $49.

உபகரணங்கள் பற்றி மேலும்

Arduino போர்டு எளிமையானது ஏவிஆர் மைக்ரோகண்ட்ரோலர், இது பூட்லோடருடன் ஃபிளாஷ் செய்யப்பட்டது மற்றும் தேவையான குறைந்தபட்ச USB-UART போர்ட் உள்ளது. மற்ற முக்கியமான கூறுகள் உள்ளன, ஆனால் கட்டுரையின் எல்லைக்குள் இந்த இரண்டு கூறுகளில் மட்டுமே கவனம் செலுத்துவது நல்லது.

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

குழு நிரலாக்க செயல்முறை பற்றி மேலும் அறிக

மைக்ரோகண்ட்ரோலரில் இயங்குவதற்கு ஏற்கனவே தயாராக இருக்கும் நிரல் ஃபார்ம்வேர் எனப்படும். ஒரு திட்டம் அல்லது Arduino திட்டப்பணிகள் இருக்கலாம், எனவே ஒவ்வொரு ஃபார்ம்வேரையும் தனித்தனி கோப்புறையில் சேமிப்பது நல்லது தேவையான கோப்புகள். இது சிறப்பு சாதனங்களைப் பயன்படுத்தி எம்.கே படிகத்தின் மீது ஒளிரச் செய்யப்படுகிறது: புரோகிராமர்கள். இங்கே Arduino ஒரு நன்மையைக் கொண்டுள்ளது - அதற்கு ஒரு புரோகிராமர் தேவையில்லை. ஆரம்பநிலைக்கு Arduino நிரலாக்க கடினமாக இல்லை என்று எல்லாம் செய்யப்படுகிறது. எழுதப்பட்ட குறியீட்டை USB கேபிள் வழியாக MK இல் ஏற்றலாம். இந்த நன்மை சில முன் கட்டமைக்கப்பட்ட புரோகிராமர்களால் அடையப்படவில்லை, ஆனால் சிறப்பு ஃபார்ம்வேர் - ஒரு துவக்க ஏற்றி. துவக்க ஏற்றி என்பது ஒரு சிறப்பு நிரலாகும், இது இணைப்புக்குப் பிறகு உடனடியாகத் தொடங்குகிறது மற்றும் ஏதேனும் கட்டளைகள் உள்ளதா, படிகத்தை ப்ளாஷ் செய்ய வேண்டுமா, Arduino திட்டங்கள் உள்ளதா இல்லையா என்பதைக் கேட்கும். பூட்லோடரைப் பயன்படுத்துவதில் பல கவர்ச்சிகரமான நன்மைகள் உள்ளன:

  1. ஒரே ஒரு தகவல்தொடர்பு சேனலைப் பயன்படுத்துதல், கூடுதல் நேர செலவுகள் தேவையில்லை. எனவே, Arduino திட்டங்களுக்கு நீங்கள் பல்வேறு கம்பிகளை இணைக்க வேண்டிய அவசியமில்லை, அவற்றைப் பயன்படுத்தும் போது குழப்பம் இருக்கும். வெற்றிகரமான செயல்பாட்டிற்கு ஒரு USB கேபிள் போதும்.
  2. வளைந்த கைகளிலிருந்து பாதுகாப்பு. நேரடி ஃபார்ம்வேரைப் பயன்படுத்தி மைக்ரோகண்ட்ரோலரை செங்கல் நிலைக்கு கொண்டு வருவது மிகவும் எளிதானது; நீங்கள் கடினமாக உழைக்க வேண்டியதில்லை. பூட்லோடருடன் பணிபுரியும் போது, ​​நீங்கள் ஆபத்தான அமைப்புகளை அணுக முடியாது (ஒரு மேம்பாட்டு திட்டத்தின் உதவியுடன், நிச்சயமாக, இல்லையெனில் எல்லாவற்றையும் உடைக்க முடியும்). எனவே, ஆரம்பநிலைக்கான Arduino என்பது புரிந்துகொள்ளக்கூடியது மற்றும் வசதியானது என்ற கண்ணோட்டத்தில் மட்டுமல்லாமல், அவர்களுடன் பணிபுரியும் நபரின் அனுபவமின்மையுடன் தொடர்புடைய தேவையற்ற நிதிச் செலவுகளைத் தவிர்க்கவும் இது உங்களை அனுமதிக்கும்.

தொடங்குவதற்கான திட்டங்கள்

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

  1. Arduino க்கு நன்றி செயல்படும் ஒன்றை உருவாக்கவும்.
  2. Arduino உடன் ஒரு தனி பொத்தானை இணைக்கிறது. இந்த வழக்கில், நீங்கள் அதை உருவாக்கலாம், இதனால் பொத்தான் எல்இடியின் பளபளப்பை புள்ளி எண் 1 இலிருந்து சரிசெய்ய முடியும்.
  3. பொட்டென்டோமீட்டர் இணைப்பு.
  4. சர்வோ டிரைவ் கட்டுப்பாடு.
  5. மூன்று வண்ண LED உடன் இணைத்தல் மற்றும் வேலை செய்தல்.
  6. பைசோ எலக்ட்ரிக் உறுப்பை இணைக்கிறது.
  7. ஃபோட்டோரெசிஸ்டரை இணைக்கிறது.
  8. ஒரு மோஷன் சென்சார் மற்றும் அதன் செயல்பாட்டைப் பற்றிய சமிக்ஞைகளை இணைக்கிறது.
  9. ஈரப்பதம் அல்லது வெப்பநிலை சென்சார் இணைக்கிறது.

எதிர்காலத்திற்கான திட்டங்கள்

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

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

நேரம் மற்றும் இடைநிறுத்தங்களுடன் வேலை செய்வதற்கு அர்டுயினோவில் பல்வேறு கட்டளைகள் உள்ளன:

  • தாமதம்()
  • தாமதம் மைக்ரோ விநாடிகள்()
  • மில்லிஸ்()
  • மைக்ரோஸ்()

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

Arduino தாமத செயல்பாட்டைப் பயன்படுத்துதல்

தொடரியல்

Arduino தாமதம் என்பது எளிமையான கட்டளை மற்றும் பெரும்பாலும் ஆரம்பநிலையாளர்களால் பயன்படுத்தப்படுகிறது. முக்கியமாக, அடைப்புக்குறிக்குள் சுட்டிக்காட்டப்பட்ட மில்லி விநாடிகளின் எண்ணிக்கைக்கான நிரலை இடைநிறுத்துவது தாமதமாகும். (ஒரு வினாடியில் 1000 மில்லி விநாடிகள் உள்ளன.) அதிகபட்ச மதிப்பு 4294967295 ms ஆக இருக்கலாம், இது தோராயமாக 50 நாட்களுக்கு சமமாக இருக்கும். இந்த கட்டளை எவ்வாறு செயல்படுகிறது என்பதை தெளிவாகக் காட்டும் எளிய உதாரணத்தைப் பார்ப்போம்.

வெற்றிட அமைப்பு() (பின்மோட்(13, அவுட்புட்); ) வெற்றிட லூப்() (டிஜிட்டல் ரைட்(13, உயர்); // பின் 13 தாமதத்திற்கு (10000) உயர் சிக்னலை அனுப்பவும்; // 10000ms அல்லது 10 வினாடிகள் டிஜிட்டல் ரைட்13, குறைந்த நேரம்) ; // பின் 13 தாமதத்திற்கு (10000) குறைந்த சமிக்ஞையை அனுப்பவும்; // 10000ms அல்லது 10 வினாடிகள் இடைநிறுத்தவும்)

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

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

ஒளிரும் LED உடன் தாமதத்திற்கான எடுத்துக்காட்டு

தாமத செயல்பாடு எவ்வாறு செயல்படுகிறது என்பதை விளக்குவதற்கு ஒரு எடுத்துக்காட்டு சுற்று.
நீங்கள் ஒரு LED மற்றும் ஒரு மின்தடையத்துடன் ஒரு சுற்று உருவாக்கலாம். பின்னர் எங்களிடம் ஒரு நிலையான எடுத்துக்காட்டு இருக்கும் - எல்.ஈ.டி ஒளிரும். இதைச் செய்ய, நீங்கள் எல்.ஈ.டியை பின்னுடன் நேர்மறையான தொடர்புடன் இணைக்க வேண்டும், அதை நாங்கள் வெளியீட்டாக நியமித்தோம். ஏறத்தாழ 220 ஓம்ஸ் (இன்னும் கொஞ்சம் சாத்தியம்) மின்தடையம் மூலம் எல்இடியின் இலவச கால்களை தரையுடன் இணைக்கிறோம். அதன் உள்பகுதியைப் பார்த்து துருவமுனைப்பை நீங்கள் தீர்மானிக்கலாம். உள்ளே உள்ள பெரிய கோப்பை மைனஸுடன் இணைக்கப்பட்டுள்ளது, மேலும் சிறிய கால் பிளஸுடன் இணைக்கப்பட்டுள்ளது. உங்கள் எல்.ஈ.டி புதியதாக இருந்தால், லீட்களின் நீளத்தின் மூலம் துருவமுனைப்பை நீங்கள் தீர்மானிக்கலாம்: நீண்ட கால் பிளஸ், குறுகிய கால் கழித்தல்.

தாமதம் மைக்ரோசெகண்ட் செயல்பாடு

இந்த செயல்பாடு தாமதத்தின் முழுமையான அனலாக் ஆகும், தவிர அதன் அளவீட்டு அலகுகள் மில்லி விநாடிகள் அல்ல, ஆனால் மைக்ரோ விநாடிகள் (1 வினாடியில் 1,000,000 மைக்ரோ விநாடிகள் உள்ளன). அதிகபட்ச மதிப்பு 16383 ஆக இருக்கும், இது 16 மில்லி விநாடிகளுக்கு சமம். தீர்மானம் 4, அதாவது எண் எப்போதும் நான்கின் பெருக்கமாக இருக்கும். ஒரு எடுத்துக்காட்டு துணுக்கு இப்படி இருக்கும்:

DigitalWrite(2, HIGH); // பின் 2 தாமதத்திற்கு அதிக சமிக்ஞையை அனுப்பவும் மைக்ரோசெகண்ட்ஸ்(16383); // இடைநிறுத்தம் 16383 µs டிஜிட்டல் ரைட்(2, குறைந்த); // பின் 2 தாமதத்திற்கு குறைந்த சமிக்ஞையை அனுப்பவும் மைக்ரோ விநாடிகள் (16383); // இடைநிறுத்தம் 16383 µs

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

தாமதத்திற்கு பதிலாக மில்லிஸ் செயல்பாடு

மில்லிஸ்() செயல்பாடு Arduino இல் தாமதமின்றி தாமதம் செய்ய உங்களை அனுமதிக்கும், இதன் மூலம் முந்தைய முறைகளின் குறைபாடுகளைத் தவிர்க்கலாம். மில்லிஸ் அளவுருவின் அதிகபட்ச மதிப்பு, தாமதச் செயல்பாட்டின் (4294967295ms அல்லது 50 நாட்கள்) போலவே இருக்கும்.

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

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

குழுவின் வேலையை தெளிவாக விளக்கும் ஒரு எடுத்துக்காட்டு இங்கே:

கையொப்பமிடப்படாத நீண்ட நேரம்; // ரிஃபரன்ஸ் பாயின்ட் வெற்றிட அமைவைச் சேமிப்பதற்கான மாறி (Serial.begin(9600); ) void loop() ( /* இந்த கட்டத்தில் தாமதம்() அனலாக் செயல்படுத்துதல் தொடங்குகிறது. தற்போதைய தருணத்திற்கும், முன்பு சேமித்த குறிப்பு புள்ளி. வேறுபாடு விரும்பிய மதிப்பை விட அதிகமாக இருந்தால், குறியீட்டை இயக்கவும். இல்லையெனில், எதுவும் செய்ய வேண்டாம் */ if (millis() - timing > 10000)( // 10000 க்கு பதிலாக, உங்களுக்கு நேரம் தேவைப்படும் இடைநிறுத்த மதிப்பை மாற்றவும் = மில்லிஸ்(); Serial.println ("10 வினாடிகள்") ; ) )

முதலில் நாம் டைமிங் மாறியை அறிமுகப்படுத்துகிறோம், இது மில்லி விநாடிகளின் எண்ணிக்கையை சேமிக்கும். முன்னிருப்பாக, மாறியின் மதிப்பு 0. நிரலின் முக்கியப் பகுதியில், நிபந்தனையைச் சரிபார்ப்போம்: மைக்ரோகண்ட்ரோலரின் தொடக்கத்திலிருந்து மில்லி விநாடிகளின் எண்ணிக்கையைக் கழித்து, டைமிங் மாறியில் எழுதப்பட்ட எண் 10000 ஐ விட அதிகமாக இருந்தால், பின்னர் போர்ட் மானிட்டருக்கு செய்தியை வெளியிடும் செயல் செய்யப்படுகிறது மற்றும் தற்போதைய நேர மதிப்பு மாறிக்கு எழுதப்படுகிறது. நிரலின் செயல்பாட்டின் விளைவாக, ஒவ்வொரு 10 வினாடிகளுக்கும் 10 வினாடிகள் செய்தி போர்ட் மானிட்டரில் காட்டப்படும். இந்த முறைதாமதமின்றி LED ஐ ஒளிர அனுமதிக்கிறது.

தாமதத்திற்கு பதிலாக மைக்ரோஸ் செயல்படுகிறது

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

சுருக்கம்

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

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


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

ஒரு தொடக்கக்காரருக்கு Arduino எங்கு தொடங்குவது

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


குறியீடு எழுதப்பட்டுள்ளது Arduino சூழல், அழைக்கப்பட்டது ஓவியம். அதில் எழுதப்பட்டுள்ளது உரை திருத்தி, இது உரையைச் செருக/வெட்டுதல், மாற்றுதல்/தேடுதல் ஆகியவற்றுக்கான சிறப்புக் கருவிகளைக் கொண்டுள்ளது. சேமிக்கும் மற்றும் ஏற்றுமதி செய்யும் போது, ​​செய்தி பகுதியில் விளக்கங்கள் தோன்றும் (தொடக்கத்திற்கான முதல் பாடத்தில் உள்ள படத்தைப் பார்க்கவும், கீழே), மேலும் பிழைகளும் காட்டப்படலாம். முழு பிழை அறிக்கைகள் மற்றும் பிறவற்றை உள்ளடக்கிய Arduino செய்திகளை கன்சோல் காட்டுகிறது பயனுள்ள தகவல். கருவிப்பட்டி பொத்தான்கள் ஒரு ஓவியத்தை சரிபார்த்து பதிவுசெய்யவும், திறக்கவும், உருவாக்கவும் மற்றும் சேமிக்கவும், தொடர் பஸ் கண்காணிப்பைத் திறக்கவும் மற்றும் பலவற்றை செய்யவும் உங்களை அனுமதிக்கின்றன.

எனவே முதல்வருக்கு செல்லலாம். Arduino பாடம்தொடக்க மின்னணு பொறியாளர்களுக்கான சுற்று வரைபடங்கள்.

ஆரம்பநிலையாளர்களின் வசதிக்காக, Arduino UNO கட்டுப்படுத்தி ஏற்கனவே ஒரு எதிர்ப்பைக் கொண்டுள்ளது மற்றும் இணைப்பியின் 13 பின் 13 உடன் இணைக்கப்பட்ட LED, எனவே முதல் பரிசோதனையில் எங்களுக்கு வெளிப்புற ரேடியோ கூறுகள் எதுவும் தேவையில்லை.


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

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

பதிவிறக்க குறியீடு:
001-1_mig-led.ino கோப்பில் கருத்துகள் மற்றும் விளக்கங்களுடன் வரையவும்

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


செயல்பாடு தாமதம்(1000) நிரல் செயலாக்கத்தை 1000 மில்லி விநாடிகள் தாமதப்படுத்துகிறது. இது அனைத்தும் ஒரு நித்திய சுழற்சியில் செல்கிறது வளைய ().

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

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

மதிப்பை உயர்வாகவும் பின்னர் குறைவாகவும் அமைப்பதற்குப் பதிலாக, ledPin இன் மதிப்பைப் பெற்று அதைத் திருப்புவோம். அது உயர்வாக இருந்தால், அது குறைவாக மாறும், முதலியன சொல்லலாம்.

இரண்டாவது LED கட்டுப்பாட்டுக்கான Arduino குறியீடு விருப்பம்இங்கே:

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

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

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

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

இந்த திட்டத்தின் ஆரம்பம் வேறு எந்த நிலையான Arduino ஸ்கெட்ச் போலவே உள்ளது.


IN இந்த எடுத்துக்காட்டில்இரண்டு Arduino டிஜிட்டல் I/O ஊசிகள் பயன்படுத்தப்படுகின்றன. LED பின் 8 உடன் இணைக்கப்பட்டுள்ளது, இது OUTPUT ஆக கட்டமைக்கப்பட்டுள்ளது. ஒரு பொத்தான் 9 வழியாக இணைக்கப்பட்டுள்ளது, இது INPUT ஆக கட்டமைக்கப்பட்டுள்ளது. நாம் பொத்தானை அழுத்தினால், பின் 9 உயர்வாக அமைக்கப்பட்டது, மேலும் நிரல் பின் 8 ஐ உயர்வாக மாற்றுகிறது, இதன் மூலம் LED ஐ இயக்குகிறது. பொத்தானை விடுவிப்பது பின் 9 ஐ குறைந்ததாக மீட்டமைக்கிறது. குறியீடு பின் 8 ஐ குறைந்ததாக மாற்றி, காட்டி ஒளியை அணைக்கிறது.

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

Arduino UNO மூன்று துறைமுகங்களைக் கொண்டுள்ளது: பி(8 முதல் 13 வரையிலான டிஜிட்டல் உள்ளீடுகள்/வெளியீடுகள்); சி(அனலாக் உள்ளீடுகள்); டி(டிஜிட்டல் உள்ளீடுகள்/வெளியீடுகள் 0 முதல் 7 வரை)

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

சர்க்யூட்டை இயக்க, போர்ட் பியைப் பயன்படுத்துவோம். இதைச் செய்ய, அனைத்து போர்ட் பின்களையும் டிஜிட்டல் வெளியீடுகளாக அமைப்போம். போர்ட் பிக்கு 6 கால்கள் மட்டுமே உள்ளன. DDRB பதிவு பிட்கள் அமைக்கப்பட வேண்டும் "1" , பின் ஒரு வெளியீட்டாக (அவுட்புட்) பயன்படுத்தப்பட்டால், மற்றும் இன் "0" , நாம் பின்னை உள்ளீடாகப் பயன்படுத்த திட்டமிட்டால் (INPUT). போர்ட் பிட்கள் 0 முதல் 7 வரை எண்ணப்படுகின்றன, ஆனால் எல்லா 8 பின்களும் எப்போதும் இருக்காது

சொல்வோம்: DDRB = B00111110;// போர்ட் பி பின்களை 1 முதல் 5 வரை வெளியீட்டாகவும் 0 ஐ உள்ளீடாகவும் அமைக்கவும்.

எங்கள் இயங்கும் விளக்குகள் சுற்றுகளில் ஐந்து வெளியீடுகளைப் பயன்படுத்துகிறோம்: DDRB = B00011111; // போர்ட் பி பின்களை 0 முதல் 4 வரை வெளியீடுகளாக அமைக்கவும்.

போர்ட் Bக்கு தரவை எழுத, நீங்கள் PORTB பதிவேட்டைப் பயன்படுத்த வேண்டும். கட்டுப்பாட்டு கட்டளையைப் பயன்படுத்தி நீங்கள் முதல் LED ஐ ஒளிரச் செய்யலாம்: PORTB = B00000001;, முதல் மற்றும் நான்காவது LED: PORTB = B00001001மற்றும் பல

இரண்டு பைனரி ஷிப்ட் ஆபரேட்டர்கள் உள்ளன: இடது மற்றும் வலது. இடது ஷிப்ட் ஆபரேட்டர் அனைத்து தரவு பிட்களையும் இடதுபுறமாக நகர்த்துகிறது, அதே நேரத்தில் வலது ஷிப்ட் ஆபரேட்டர் அவற்றை வலதுபுறமாக நகர்த்துகிறது.

உதாரணமாக:

varA = 1; //00000001
varA = 1 varA = 1 varA = 1

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

கட்டமைப்பு ரீதியாக, அத்தகைய எல்.ஈ.டி ஒவ்வொரு வண்ணத்திற்கும் ஒரு பொதுவான முனையத்தையும் மூன்று முனையங்களையும் கொண்டுள்ளது. RGB LED ஐ Arduino போர்டுடன் பொதுவான கேத்தோடுடன் இணைக்கும் வரைபடம் கீழே உள்ளது. இணைப்பு சுற்றுகளில் பயன்படுத்தப்படும் அனைத்து மின்தடையங்களும் 220-270 ஓம்ஸில் இருந்து ஒரே மதிப்பாக இருக்க வேண்டும்.


பொதுவான கேத்தோடுடனான இணைப்பிற்கு, மூன்று வண்ண எல்இடிக்கான இணைப்பு வரைபடம் கிட்டத்தட்ட ஒரே மாதிரியாக இருக்கும், தவிர பொதுவான முள் தரையில் அல்ல (சாதனத்தில் ஜிஎன்டி), ஆனால் +5 வோல்ட் பின்னுடன் இணைக்கப்படும். இரண்டு நிகழ்வுகளிலும் பின்கள் சிவப்பு, பச்சை மற்றும் நீலம் கட்டுப்படுத்தி டிஜிட்டல் வெளியீடுகள் 9, 10 மற்றும் 11 உடன் இணைக்கப்பட்டுள்ளன.

220 ஓம்ஸ் எதிர்ப்பின் மூலம் ஆர்டுயினோ யுஎன்ஓவின் ஒன்பதாவது பின்னுடன் வெளிப்புற எல்இடியை இணைப்போம். பிந்தையவற்றின் பிரகாசத்தை சீராகக் கட்டுப்படுத்த, செயல்பாட்டைப் பயன்படுத்தவும் அனலாக்ரைட்(). இது கட்டுப்படுத்தி காலுக்கு PWM சமிக்ஞையின் வெளியீட்டை வழங்குகிறது. மேலும், அணி பின்முறை()அழைக்க தேவையில்லை. ஏனெனில் அனலாக்ரைட் (முள், மதிப்பு)இரண்டு அளவுருக்கள் அடங்கும்: பின் - வெளியீட்டிற்கான பின் எண், மதிப்பு - மதிப்பு 0 முதல் 255 வரை.

குறியீடு:
/*
எல்.ஈ.டியின் ஃபேட் எஃபெக்ட்டை செயல்படுத்துவதற்கான அனலாக் ரைட்() கட்டளையின் திறன்களை வெளிப்படுத்தும் புதிய அர்டுயினோ டெவலப்பருக்கான பயிற்சி எடுத்துக்காட்டு
*/
int பிரகாசம் = 0; // LED பிரகாசம்
int fadeAmount = 5; // பிரகாசத்தை மாற்றும் படி
கையொப்பமிடாத நீண்ட தற்போதைய நேரம்;
கையொப்பமிடப்படாத நீண்ட லூப் டைம்;

வெற்றிட அமைப்பு() (
பின்முறை(9, அவுட்புட்); // பின் 9 ஐ வெளியீட்டாக அமைக்கவும்
தற்போதைய நேரம் = மில்லிஸ்();
loopTime = தற்போதைய நேரம்;
}

வெற்றிட வளையம்() (
தற்போதைய நேரம் = மில்லிஸ்();
if(currentTime >= (loopTime + 20))(
அனலாக்ரைட்(9, பிரகாசம்); // பின் 9 இல் மதிப்பை அமைக்கவும்

பிரகாசம் = பிரகாசம் + மங்கல்அமவுண்ட்; // பிரகாசத்தை மாற்ற ஒரு படியைச் சேர்க்கவும், இது அடுத்த சுழற்சியில் நிறுவப்படும்

// நிமிடத்தை அடைந்தால். அல்லது அதிகபட்சம். மதிப்புகள், பின்னர் நாம் எதிர் திசையில் செல்கிறோம் (தலைகீழ்):
என்றால் (பிரகாசம் == 0 || பிரகாசம் == 255) (
fadeAmount = -fadeAmount ;
}
loopTime = தற்போதைய நேரம்;
}
}

Arduino செயல்பாடுகுறியாக்கியுடன்

குறியாக்கி சுழற்சியின் கோணத்தை மின் சமிக்ஞையாக மாற்ற வடிவமைக்கப்பட்டுள்ளது. அதிலிருந்து நாம் இரண்டு சமிக்ஞைகளைப் பெறுகிறோம் (A மற்றும் B), அவை கட்டத்தில் எதிர்மாறாக உள்ளன. இந்த டுடோரியலில் நாம் SparkFun COM-09117 குறியாக்கியைப் பயன்படுத்துவோம், இது ஒரு புரட்சிக்கு பன்னிரண்டு நிலைகளைக் கொண்டுள்ளது (ஒவ்வொரு நிலையும் சரியாக 30° ஆகும்). குறியாக்கி கடிகார திசையில் அல்லது எதிரெதிர் திசையில் நகரும் போது வெளியீடு A மற்றும் B ஒன்றையொன்று எவ்வாறு சார்ந்துள்ளது என்பதை கீழே உள்ள படம் தெளிவாகக் காட்டுகிறது.

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

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

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

வேகமான நிலையில், குறியாக்கி குமிழியை 1/10 வினாடியில் 180° சுழற்ற முடியும் என்ற உண்மையைக் கருத்தில் கொண்டு, இது ஒரு நொடியில் 1/10 இல் 6 துடிப்புகளாகவோ அல்லது ஒரு நொடியில் 60 துடிப்புகளாகவோ இருக்கும்.

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

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


நிரல் டைமர் சிக்னல்களின் அடிப்படையில், குறியாக்கி வெளியீடு A இன் தற்போதைய மதிப்பை முந்தைய மதிப்புடன் தொடர்ந்து ஒப்பிடுவது அவசியம். நிலை நேர்மறையிலிருந்து பூஜ்ஜியத்திற்கு மாறினால், வெளியீட்டின் நிலையை B. மாநில வாக்கெடுப்பின் முடிவைப் பொறுத்து, மதிப்பு கவுண்டரை கூட்டவோ அல்லது குறைக்கவோ செய்கிறோம். LED பிரகாசம் LED. சுமார் 5 எம்எஸ் (200 ஹெர்ட்ஸ்) நேர இடைவெளியுடன் நிரல் குறியீடு கீழே கொடுக்கப்பட்டுள்ளது:

Arduino தொடக்க குறியீடு:
/*
** குறியாக்கி
** LED இன் பிரகாசத்தைக் கட்டுப்படுத்த, Sparkfun இலிருந்து ஒரு குறியாக்கி பயன்படுத்தப்படுகிறது
*/

Int பிரகாசம் = 120; // LED பிரகாசம், பாதியில் தொடங்கவும்
int fadeAmount = 10; // பிரகாசத்தை மாற்றும் படி
கையொப்பமிடாத நீண்ட தற்போதைய நேரம்;
கையொப்பமிடப்படாத நீண்ட லூப் டைம்;
const int pin_A = 12; //முள் 12
const int pin_B = 11; //முள் 11
கையொப்பமிடப்படாத சார் குறியாக்கி_A;
கையொப்பமிடப்படாத சார் குறியாக்கி_B;
கையொப்பமிடப்படாத char encoder_A_prev=0;
வெற்றிட அமைப்பு() (
// பின் 9 ஐ ஒரு வெளியீடு என்று அறிவிக்கவும்:
பின்முறை(9, அவுட்புட்); // பின் 9 ஐ வெளியீட்டாக அமைக்கவும்
பின்முறை (pin_A, INPUT);
பின்முறை (pin_B, INPUT);
தற்போதைய நேரம் = மில்லிஸ்();
loopTime = தற்போதைய நேரம்;
}
வெற்றிட சுழற்சி () (
தற்போதைய நேரம் = மில்லிஸ்();
if(currentTime >= (loopTime + 5))( // சரிபார்ப்பு ஒவ்வொரு 5ms (அதிர்வெண் 200 ஹெர்ட்ஸ்)
குறியாக்கி_A = டிஜிட்டல் ரீட்(pin_A); // குறியாக்கியின் வெளியீடு A இன் நிலையைப் படிக்கவும்
encoder_B = டிஜிட்டல் ரீட்(pin_B); // குறியாக்கி வெளியீடு பி
if((!encoder_A) && (encoder_A_prev))( // நிலை நேர்மறையிலிருந்து பூஜ்ஜியத்திற்கு மாறினால்
என்றால்(குறியாக்கி_B) (
// வெளியீடு B நேர்மறை நிலையில் உள்ளது, அதாவது சுழற்சி கடிகார திசையில் உள்ளது
// பளபளப்பின் பிரகாசத்தை அதிகரிக்கவும், 255 க்கு மேல் இல்லை
என்றால் (பிரகாசம் + மங்கல் அளவு)
வேறு(
// வெளியீடு B பூஜ்ஜிய நிலையில் உள்ளது, அதாவது சுழற்சி எதிரெதிர் திசையில் உள்ளது
// பிரகாசத்தை குறைக்கவும், ஆனால் பூஜ்ஜியத்திற்கு கீழே இல்லை
if(brightness - fadeAmount >= 0) பிரகாசம் -= fadeAmount;
}

}
குறியாக்கி_A_prev = குறியாக்கி_A; // அடுத்த வளையத்திற்கு A இன் மதிப்பைச் சேமிக்கவும்

அனலாக்ரைட்(9, பிரகாசம்); // பிரகாசத்தை ஒன்பதாவது பின்னுக்கு அமைக்கவும்

LoopTime = தற்போதைய நேரம்;
}
}

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

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

பல்வேறு ரேடியோ கட்டுப்பாட்டு மாதிரிகளின் வடிவமைப்பில் சர்வோ டிரைவ் முக்கிய உறுப்பு ஆகும், மேலும் கட்டுப்படுத்தியைப் பயன்படுத்தி அதன் கட்டுப்பாடு எளிமையானது மற்றும் வசதியானது.


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

குறியீடு:
/*
அர்டுயினோ சர்வோ
*/
#சேர்க்கிறது
சர்வோ சர்வோமெயின்; // சர்வோ பொருள்

வெற்றிட அமைப்பு()
{
servoMain.attach(9); // சர்வோ பின் 9 உடன் இணைக்கப்பட்டுள்ளது
}

வெற்றிட வளையம்()
{
servoMain.write(45); // சர்வோவை இடதுபுறம் 45° சுழற்று
தாமதம்(2000); // 2000 மில்லி விநாடிகள் காத்திருங்கள் (2 வினாடிகள்)
servoMain.write(0); // சர்வோவை இடதுபுறமாக 0° சுழற்று
தாமதம்(1000); // இடைநிறுத்தம் 1 வி.

தாமதம்(1500); //1.5 வினாடிகள் காத்திருக்கவும்.
servoMain.write(135); // சர்வோவை வலது பக்கம் 135° சுழற்று
தாமதம் (3000); // இடைநிறுத்தம் 3 வி.
servoMain.write(180); // சர்வோவை வலதுபுறமாக 180° சுழற்று
தாமதம்(1000); //1 வினாடி காத்திருங்கள்.
servoMain.write(90); // சர்வோவை 90° சுழற்று. மத்திய நிலை
தாமதம் (5000); // இடைநிறுத்தம் 5 வி.
}

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

7-பிரிவு காட்டி மீது Arduino கவுண்டர் சர்க்யூட்

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

ஏழு-பிரிவு காட்டி - 8 LED களின் கலவையாகும் (கடைசியானது புள்ளிக்கு பொறுப்பாகும்) ஒரு பொதுவான கேத்தோடுடன், அவை எண்களை உருவாக்கும் வகையில் விரும்பிய வரிசையில் இயக்கப்படலாம். இந்த சுற்றில், கீழே உள்ள படத்தைப் பார்க்கவும், ஊசிகள் 3 மற்றும் 8 ஆகியவை கேத்தோடிற்கு ஒதுக்கப்பட்டுள்ளன என்பதை கவனத்தில் கொள்ள வேண்டும்.


கடித அட்டவணை வலதுபுறத்தில் காட்டப்பட்டுள்ளது அர்டுயினோ ஊசிகள்மற்றும் LED காட்டி ஊசிகள்.

இந்த திட்டத்திற்கான குறியீடு:

பைட் எண்கள் = (
B11111100, B01100000, B11011010, B11110010, B01100110,
B10110110, B10111110, B11100000, B11111110, B11100110
};
வெற்றிட அமைப்பு() (
for(int i = 2; i pinMode(i, OUTPUT);
}
பின்முறை(9, INPUT);
}
int கவுண்டர் = 0;
bool go_by_switch = உண்மை;
int last_input_value = குறைந்த;
வெற்றிட சுழற்சி () (
என்றால்(go_by_switch) (
int switch_input_value = டிஜிட்டல் ரீட்(9);
if(last_input_value == குறைந்த && switch_input_value == உயர்) (

}
last_input_value = switch_input_value;
) வேறு (
தாமதம்(500);
கவுண்டர் = (எதிர் + 1) % 10;
}
எழுது எண்(கவுண்டர்);
}

வெற்றிடமான எழுத்து எண்(எண் எண்) (
என்றால்(எண் 9) (
திரும்ப;
}
பைட் மாஸ்க் = எண்கள்;
பைட் தற்போதையPinMask = B10000000;
for(int i = 2; i if(mask & currentPinMask) digitalWrite(i,HIGH);
வேறு டிஜிட்டல் ரைட்(i,LOW);
தற்போதைய பின் மாஸ்க் = தற்போதைய பின் மாஸ்க் >> 1;
}
}

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