با درود به همه دوستان
من بصورت اتفاقی با این موضوع برخورد کردم یعنی اشتباهی بجای porta.0
porta.1 رو به مقاومت وصل کردم که این اتفاق افتاد این مدار که شماتیکش رو گذاشتم با نزدیک شدن دست شما به نزدیکتر از 15 سانتیمتر (حدودا) شمارنده رو اضافه میکنه و led پایه portd.5 روشن میشه.
حالا سوال من اینه که این حالت چرا بوجود اومده و آیا روشی هست که بشه کنترلش کرد یعنی با اضافه کردن قطعاتی به مدار این خاصیت رو تا چند متر افزایش بدیم ؟(منظورم اولتراسونیک نیست اشتباه نشه )
(توضیح : به محل اتصال خازن و مقاومت یک تکه کوچک فیبر مسی با سیم وصل مشه که در شماتیک نیست )
اینم برنامه:
کد:
regfile = "m32def.dat"
$crystal = 8000000
Config Lcdpin = Pin , Db4 = Pb.0 , Db5 = Pb.1 , Db6 = Pb.2 , Db7 = _
Pb.3 , E = Pb.5 , Rs = Pb.4
Config Pina.0 = Output
Config Pind.5 = Output
Config Pina.7 = Input
Dim A As Word
Dim B As Word
Cls
Do
Set Porta.0
Waitms 2
Do
Reset Portd.5
Loop Until Pina.7 = 0
Incr A
Set Portd.5
Locate 1 , 1 : Lcd "number =" ; A
Waitms 10
Loop
End
شماتیک:
کد php:
http://up.download.ir/di/7R2G/test-3.jpg
سلام
مطمئنید؟! به کدوم قطعات نزدیک می کنید؟
به فیبر مسی و یا همون خازن و مقاومت
(۱۵-آبان-۱۳۹۲, ۱۴:۵۰:۰۸)دراکولا نوشته است: [ -> ]porta.1 رو به مقاومت وصل کردم که این اتفاق افتاد این مدار که شماتیکش رو گذاشتم با نزدیک شدن دست شما به نزدیکتر از 15 سانتیمتر (حدودا) شمارنده رو اضافه میکنه و led پایه portd.5 روشن میشه.
باید هرقسمت از کدهای برنامه و سخت افزار پروژه رو بررسی کنید تا علت مشخص بشه
مثلا فعلا این قسمت هایی از برنامه رو که مشخص کردم بردارید
کد:
Config Pina.0 = Output
Do
Set Porta.0
Waitms 2
دوباره پروگرم کنید ببینید تغییری ایجاد میشه یا نه
نقل قول: (توضیح : به محل اتصال خازن و مقاومت یک تکه کوچک فیبر مسی با سیم وصل مشه که در شماتیک نیست )
یه عکسی از سخت افزار بتونید بذارید بررسی بشه
(۱۵-آبان-۱۳۹۲, ۱۴:۵۴:۱۷)Ambassador نوشته است: [ -> ]سلام
مطمئنید؟! به کدوم قطعات نزدیک می کنید؟
(۱۵-آبان-۱۳۹۲, ۲۰:۲۸:۲۸)r0b0 نوشته است: [ -> ] (۱۵-آبان-۱۳۹۲, ۱۴:۵۰:۰۸)دراکولا نوشته است: [ -> ]porta.1 رو به مقاومت وصل کردم که این اتفاق افتاد این مدار که شماتیکش رو گذاشتم با نزدیک شدن دست شما به نزدیکتر از 15 سانتیمتر (حدودا) شمارنده رو اضافه میکنه و led پایه portd.5 روشن میشه.
باید هرقسمت از کدهای برنامه و سخت افزار پروژه رو بررسی کنید تا علت مشخص بشه
مثلا فعلا این قسمت هایی از برنامه رو که مشخص کردم بردارید
کد:
Config Pina.0 = Output
Do
Set Porta.0
Waitms 2
دوباره پروگرم کنید ببینید تغییری ایجاد میشه یا نه
نقل قول: (توضیح : به محل اتصال خازن و مقاومت یک تکه کوچک فیبر مسی با سیم وصل مشه که در شماتیک نیست )
یه عکسی از سخت افزار بتونید بذارید بررسی بشه
شماتیک رو که گذاشتم در ضمن من نمی خوام این خاصیت رفع بشه بلکه می خوام بدونم دقیقا چه موقعی پیش میاد تا ازش برای سنس از راه دور استفاده کنم
شماتیک رو نمیخوام مهندس!
یه عکس از سخت افزاری که پیاده کردی بذار
قسمتی که به نوسان ساز و فیبر مسی و اینا مربوط میشه
این همون نویز گیر بودن avr هست که نسبت به نویز حساسه
با گذاشتن پول دون و کریستال رفع میشه
برای گسترش هم یه انتن به پین ورودی وصل کن حتما بهتر میشه
چجور کریستال وصل کنیم ؟ منظورم اینه که تو پروگرم کردن تغیراتی باید ایجاد شه یا ؟ مقدارش چی؟
بله بسته به نوع کریستال باید در فیوز بیت ها تغییر ایجاد کنید
(۱۵-آبان-۱۳۹۲, ۱۴:۵۰:۰۸)دراکولا نوشته است: [ -> ]با درود به همه دوستان
من بصورت اتفاقی با این موضوع برخورد کردم یعنی اشتباهی بجای porta.0
porta.1 رو به مقاومت وصل کردم که این اتفاق افتاد این مدار که شماتیکش رو گذاشتم با نزدیک شدن دست شما به نزدیکتر از 15 سانتیمتر (حدودا) شمارنده رو اضافه میکنه و led پایه portd.5 روشن میشه.
حالا سوال من اینه که این حالت چرا بوجود اومده و آیا روشی هست که بشه کنترلش کرد یعنی با اضافه کردن قطعاتی به مدار این خاصیت رو تا چند متر افزایش بدیم ؟(منظورم اولتراسونیک نیست اشتباه نشه )
(توضیح : به محل اتصال خازن و مقاومت یک تکه کوچک فیبر مسی با سیم وصل مشه که در شماتیک نیست )
جواب:
پایه های میکرو که به عنوان I/O استفاده میشن دارای سه ریجیستر(pin) برای
خواندن مقدار پایه مورد نظر ریجیستر(PORT)برای تعیین مقدار پایه مورد نظر و ریجیستر(DDR)برای تعیین اینکه پایه درحالت اتصال به ترانزیستورهای
پایه برای جریان دهی بالا (حداکثر 20mA برای هر پایه) یا حالت مقاومت تقریبا بی نهایت
DDRA.0=0 :PORTA.0=0 امپدانس بالا (تقریبا بی نهایت) حالت ورودی
DDRA.0=0 :PORTA.0=1 مقاومت (PULLUP (100K حالت ورودی
DDRA.0=1 :PORTA.0=0 پایه با ترانزیستور به وصل است حالت خروجی
DDRA.0=1 :PORTA.0=1 پایه با ترانزیستور به وصل است حالت خروجی
مقادیر قبل از استفاده در برنامه توسط کمپایلر 0 در نظر گرفته می شود
Config Pina.0 = Input همون DDRA.0=0
Config Pina.0 = Output همون DDRA.0=1
اگه مقاومت PULLUP داخلی رو فعال کنی PORTA.0=1 تاثیر از محیط کم میشه
یا مقاومت PULLUP یا PULLDOWN بیرونی براش بزاری دیگه از محیط تاثیر
نمی گیره
برای افزایش تاثیر پذیری از محیط (میدان های الکتریکی پیرامون)میتونی آنتن استفاده کنی
از یک IC CMOS سری 4000 استغاده کنی ویک سیم یا مقاومت با یک سر آزاد به ورودی گیت مثلا NOT وصل کنی و خروجی گیت رو به میکرو بدی
از یک OP-AMP CMOS مثلا TL071 استفاده کنی
یا از یک ترازیستور MOSFET مثلا از ترازیستوری که توی میکروفن خازنی هستش
درپوش میکروفن رو برداری و گیت ترانزیستور رو به یه تکه سیم وصل کنی
بعد ولتاژ خروجی رو تقویت کنی
برای ورودیهای ای سی که حالت آزاد دارن مقاومت پول آپ یا پول داون بسته به مدار بذار 100% حله به کریستال بستگی نداره چون امواج RF محیط روی ورودیهای آزاد اثر میزاره
توضیحات کریمج را بخوان مفیده