به نام خدا : امروز میخوام یه پروژه با آی سی ۴۰۶۷ بزارم تو سایت ؛ پروژش رو خیلی وقت پیش انجام داده بودم و گزاشته بودم تو صف ارسال مطلب …. ولی یکی از دوستان گفت که میخوام ۲۴ تا سنسور ربات مسیر یاب رو به avr وصل کنم ولی Avr پایه adc کم داره؛ ما هم دیدیم ای وای من
همچین پروژه ای دایم و لذا گفتیم بزاریم تو سایت هم کار این بنده خدا راه بیوفته و هم اگه خدایی نکرده خدایی نکرده کسی این پروژه بدردش خورد بیاد استفاده کنه.
آموزش گسترش پایه های adc با آی سی ۴۰۶۷
خوب از این حرفا بگذریم و بریم سر اصل مطلب
اگه کتاب خونه پروتئوس رو ببینید همچین آی سی یی با همچین امکاناتی و همچین عملکردی ۲ تا داریم یه ۴۰۶۷ که ۱ پایه adc رو تبدیل میکنه به ۱۶ تا و یه آی سی ۴۰۵۱ داریم و ۱ پایه adc رو میکنه ۸ تا پایه adc
پروژه AVR با آی سی ۴۰۶۷
شماتیک پروژه
فایل پروتئوس در ته مطلب کنار بقیه چرت و پرت های پروژه پیوست شده؛ نگران کیفیت پایین عکس زیر نباشید.(در ضمن اگه خواستین روی عکس زیر کلیک کنید و در اندازه اصلی ببینیدش)
اون چیزایی هم که میبینید به آی سی ۴۰۶۷ وصل هستش سنسور دمای LM35 هستش؛ شما میتونید سنسور خودتون رو قرار بدید.
کد های پروژه
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
#include <mega16.h> #include <delay.h> #include <stdlib.h> #include <lcd.h> #asm .equ __lcd_port=0x12; #endasm #define ADC_VREF_TYPE 0x00 unsigned int read_adc(unsigned char adc_input) { ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); // Delay needed for the stabilization of the ADC input voltage delay_us(10); // Start the AD conversion ADCSRA|=0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCW; } void main() { char str[]; float Temp[16]; int i=0; DDRB=0X0F; lcd_init(20); // ADC initialization // ADC Clock frequency: 1000.000 kHz // ADC Voltage Reference: AREF pin // ADC Auto Trigger Source: None ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x83; while(1) { for(i=0;i<=15;i++) { PORTB=i; Temp[i] = read_adc(0); Temp[i]=(Temp[i]*500/1023); switch (i) { case 0: lcd_gotoxy(0,0); break; case 1: lcd_gotoxy(4,0); break; case 2: lcd_gotoxy(8,0); break; case 3: lcd_gotoxy(12,0); break; case 4: lcd_gotoxy(16,0); break; case 5: lcd_gotoxy(0,1); break; case 6: lcd_gotoxy(4,1); break; case 7: lcd_gotoxy(8,1); break; case 8: lcd_gotoxy(12,1); break; case 9: lcd_gotoxy(16,1); break; case 10: lcd_gotoxy(0,2); break; case 11: lcd_gotoxy(4,2); break; case 12: lcd_gotoxy(8,2); break; case 13: lcd_gotoxy(12,2); break; case 14: lcd_gotoxy(16,2); break; case 15: lcd_gotoxy(0,3); break; } itoa(Temp[i],str); lcd_puts(str);lcd_putsf(" "); delay_ms(10); } } } |
اون پایه EN که معلوما برا فعال و غیر فعال کردن آی سی هستش.(با توجه به اون خط بالاش یعنی NOT یعنی با ۰ ولت IC فعال میشه)
۱۵ تا پایه ورودی داریم(X0 تا X15) که سنسور هامون رو به این پایه ها وصل میکنیم. و ۴ تا پایه دایم به نام های A,B,C,D که به وسیله اینا انتخاب میکنیم که ولتاژ کدوم پایه از این ۱۵ تا پایه بیوفته رو پایه خروجی.....این ۴ تا پایه رو وصل میکنیم به میکرو و مقادیر مختلفی میدیم تا به ترتیب ولتاژ سنسور ۱ تا ۱۶ بیوفته رو خروجی و بعد به ترتیب میخنیم ولتاژ خروجی رو و ذخیره میکنیم ودر پروژه استفاده میکنیم.
البته برای این که بدونید چرا به این آی سی میگن مالتی پلکس و... میتونید تو نت سچ کنید یا این که یادم بیارید تا یه مطلب حامع دربارش بزارم تو سایت؛ البته تو کتاب مدار منطقی موریس مانو هم میتونید اطلاعاتی دربارش گیر بیارید.
اتصال ۱۶ سنسور به avr با یک پایه adc (با بسکام)
آموزش راه اندزی مالتی پلکسر ۴۰۶۷ (با بسکام)
دانلود فایل پروژه به همراه دیتاشیت آی سی ۴۰۶۷
در آخر امیدوارم این مطلب مفید بوده باشه براتون.
هزینه ی استفاده از مطلب : یه فاتحه برا کسایی که از دنیا رفتن ؛ ۳ تا صلوات برا ظهور آقا و شادی روح شهدا و امام شهدا و سلامتی رهبر
فعلا تا مطلب بعد یا علی (که چند ساعت دیگه باس باشه…شاید هم شب…شاید هم …..آموزش آردوینو جلسه ۷
)
مهمان
سلام
ببخشیدیه توضیح میدید اینجا چه اتفاقی می افته:
;(itoa(Temp[i],str
; (” “) lcd_puts(str);lcd_putsf
;(delay_ms(10
نویسنده این مطلب
سلام – درباره نحوه عملکرد تابع itoa سرچ کن – باید تبدیل متغییر int به array باشه
خط بعد که میاد آرایه str رو نمایش میده تو lcd بعدش یه space چاپ میکنه – بعد یه تغییر 10ms
مهمان
سلام . ببخشید من چندین سوال دارم و خیلی هم به جوابشون نیاز دارم ممنون میشم به ایمیلم پیام بدبد و وکمکم کنید
۱٫ چهارتا المان به میکرو وصله .پایه های B0 تا B3 اونا چین؟ منبع ۵ ولتن؟؟
۲٫ من دایم بعد ران کردن برنامهام ارور میده پروتوسم و با اوکی کردن ارور برنامم بسته میشه باید چیکار کنم؟؟ پلیز هلپ می
نویسنده این مطلب
سلام
سوال ۱ رو باید تو مطلب توضیح داده باشم.
سوال ۲ هم باید بگم که در عمل تست کنید.
مهمان
سلام .وقت بخیر
ببخشید به پایه های A B C D ای سی ۴۰۶۷ چی وصل شده؟؟؟ از کجای پروتوس بیارمش؟؟ من ی پروزه دارم که قدم اولش همین خوندن ی سری دما از سنسورای مختلف و نمایش اونه . کدنویسی خیلی بلد نیستم اگه یکمم راجب کدا بگین که ی سری خطوط برنامه که تخصی تره چیکار میکنه دقیقا خیلی ممنون میشم. خیلی گنگه برام .بیشتر همه الان پروتوسش مهمه برام که یک بار ران کنم از روی کدای شما ببینم چطوری عمل میکنه.ممنون میشم جابمو بدین
نویسنده این مطلب
سلام
نمیدونم – فایل ته مطلبو دانلود کن و شماتیکو ببین.
آموزش های میکرو تو سایت هستش – کد نویسی c هم مطلب دربارش تو نت زیاده.
مهمان
یه چیز دیگه هم میخواستم بگم
چرا همه جا ضروری رو نوشتید ظروری ؟
نمیخوام این پیامم تو سایت نشون داده بشه ها
نویسنده این مطلب
املام ضعیف هستش – فقط این یه مورد نیستش.
مهمان
سلام
آقا خیلی ممنون از زحمات
مهمان
سلام
مهندس عزیز به این مالتی پلکسر میشه ولتاژ منفی داد ؟ دیتاشیتش چیزی ذکر نکرده فکر کنم …
کلا مالتی پلکسر با قابلیت ورودی ولتاژ منفی میتونی معرفی کنی ؟ تا ولتاژ منفی -۵ ولت
نویسنده این مطلب
سلام
متاسفانه سراغ ندارم
مهمان
برای آمرزش همه رفتگان خاک
بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِیمِ ﴿۱﴾
الْحَمْدُ للّهِ رَبِّ الْعَالَمِینَ ﴿۲﴾ الرَّحْمنِ الرَّحِیمِ ﴿۳﴾ مَالِکِ یَوْمِ الدِّینِ ﴿۴﴾ إِیَّاکَ نَعْبُدُ وإِیَّاکَ نَسْتَعِینُ ﴿۵﴾ اهدِنَا الصِّرَاطَ المُستَقِیمَ ﴿۶﴾ صِرَاطَ الَّذِینَ أَنعَمتَ عَلَیهِمْ غَیرِ المَغضُوبِ عَلَیهِمْ وَلاَ الضَّالِّینَ ﴿۷﴾
برای سلامتی آقا امام زمان (عج) و شادی روح شهدا
للَّهُمَّ صَلِّ عَلَى وَلِیِّکَ وَ ابْنِ أَوْلِیَائِکَ الَّذِینَ فَرَضْتَ طَاعَتَهُمْ وَ أَوْجَبْتَ حَقَّهُمْ وَ أَذْهَبْتَ عَنْهُمُ
الرِّجْسَ وَ طَهَّرْتَهُمْ تَطْهِیرا اللَّهُمَّ انْصُرْهُ وَ انْتَصِرْ بِهِ لِدِینِکَ وَ انْصُرْ بِهِ أَوْلِیَاءَکَ وَ أَوْلِیَاءَهُ وَ
شِیعَتَهُ وَ أَنْصَارَهُ وَ اجْعَلْنَا مِنْهُمْ اللَّهُمَّ أَعِذْهُ مِنْ شَرِّ آُلِّ بَاغٍ وَ طَاغٍ وَ مِنْ شَرِّ جَمِیعِ خَلْقِکَ وَ
احْفَظْهُ مِنْ بَیْنِ یَدَیْهِ وَ مِنْ خَلْفِهِ وَ عَنْ یَمِینِهِ وَ عَنْ شِمَالِهِ وَ احْرُسْهُ وَ امْنَعْهُ أَنْ یُوصَلَ إِلَیْهِ
بِسُوءٍ وَ احْفَظْ فِیهِ رَسُولَکَ وَ آلَ رَسُولِکَ وَ أَظْهِرْ بِهِ الْعَدْلَ وَ أَیِّدْهُ بِالنَّصْرِ وَ انْصُرْ نَاصِرِیهِ وَ
اخْذُلْ خَاذِلِیهِ وَ اقْصِمْ بِهِ جَبَابِرَهَ الْکُفْرِ وَ اقْتُلْ بِهِ الْکُفَّارَ وَ الْمُنَافِقِینَ وَ جَمِیعَ الْمُلْحِدِینَ حَیْثُ
آَانُوا مِنْ مَشَارِقِ الْأَرْضِ وَ مَغَارِبِهَا وَ بَرِّهَا وَ بِحْرِهَا وَ امْلَأْ بِهِ الْأَرْضَ عَدْلا وَأَظْهِرْ بِهِ دِینَ
نَبِیِّکَ عَلَیْهِ وَ آلِهِ السَّلامُ وَ اجْعَلْنِی اللَّهُمَّ مِنْ أَنْصَارِهِ وَ أَعْوَانِهِ وَ أَتْبَاعِهِ وَ شِیعَتِهِ وَ أَرِنِی فِی آلِ
مُحَمَّدٍ مَا یَأْمُلُونَ وَ فِی عَدُوِّهِمْ مَا یَحْذَرُونَ إِلَهَ الْحَقِّ آمِینَ.
خدایا درود فرست بر نماینده ات و فرزند نمایندگانت،آنان که فرمانبردارى از آنها را لازم نمودى،و حقّشان را واجب گرداندى،و
پلیدى را از آنها بردى،و پاکشان نمودى،پاک کردنى درخور و شایسته.خدایا یار ىاش کن،و به وسیله او براى دینت یارى رسان،و
به دست او یارى فرما دوستانت و دوستانش و شیعیان و یاورانش را،و ما را از آنان قرار ده.خدایا به او پناه ده.از شرّ هر متجاوز و
سرکش،و از شرّ همه آفریدگانت،و او را حفظ کن،از پیش رویش و از پشت سرش،و از جانب راستش،و از طرف چپش،و
نگهبانى اش کن و جلوگیرى فرما از اینکه پی شآمد بدى به او در رسد،و پیامبرت و خاندان پیامبرت را در وجود او حفظ فرما،و
عدالت را به او آشکار کن،و وى را با پیروزى تأیید کن،یاورش را یارى ده،و دریغ کننده از یارى اش را خوار گردان،و به دست او
گردنکشان کفر را درهم شکن،و کافران و منافقا ن و تمام ب ىدینان را به قتل برسان،هر کجا هستند،در مشرقهاى زمین و
مغربهایش،در خشیها و دریاهایش و به وسیله او زمین را از عدالت پر کن،و دین پیامبرت(بر او و خاندانش درود باد)را به او
نمایان فرما،و قرار ده مرا خدایا از یاران و مددکاران و پیروان و شیعیانش،و درباره خاندان محمد به من بنمایان،آنچه را که آرزو
دارند،و درباره دشمنانشان آنچه را که بیم دارند،اى معبود حق آمین.
مهمان
نظر ندی یه وقت…گناه میشه
مهمان
خسته نباشی عالیه
مهمان
عاقا بهتر نیست بجای استفاده از adc که اینقدر وقت گیره و در داخل میکرو هم به صورت ماللتی پلکسی هستش واسه مسیریاب از بافر استفاده کتید ؟
مهمان
درسته طبعا بهتره..
مهمان
سلام
اموزش کامل و بى نقص بود ولى یه نکته من خودم هم قبلا یه همچین کارى کردم ولى براى ربات هاى تعقیب خط باید از ای سی هاى بافر استفاده کنى و از خروجى دیجیتالشون استفاده کنى تا رباتت قاطى نکنه و سرعت پردازشش کم نشه چون خوندن یه دیتا ١بیتى سریع تر از یه دیتا ١٠ هست