ايران ويج

نسخه‌ی کامل: کمک از دوستان برای یک برنامه ساده
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام
من تازه با avr آشنا شدم و می خواستم ازتون یک کمک بگیرم در رابطه با یک برنامه خیلی ساده (البته برای شما)

امکان داره یک برنامه با بسکام و atmega32  برای من بنویسید که بتونه
یک مقدار پالس بگیره (مثلا 10 هزار تا) بعد یک ثانیه یک پایه رو برای من یک کنه و دوباره صفر کنه
من می خواهم این برنامه دور یک گیربکس رو بشماره برام  و روی lcd تغداد دور یا پالس رو نشون بده (برای این کار یک پراکسی نصب کرده ام که با هر دور یک تیغه قطع و وصل به من میده) و وقتی به عدد setpoint (مثلا 10 هزار دور) رسید عدد روی lcd صفر بشه و یک led به مدت یک ثانیه روش بشه و خاموش بشه و دوباره شمارش از صفر شروع بشه و دائم کار کنه

عزیزان لطف کردن این برنامه رو نوشتن ولی این برنامه input نداره و من نمی تونم دور گیربکس رو که یه پالس 5 ولتی هست رو بدم به میکرو


کد:
$regfile "m32def.dat"
$crystal = 1000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portb.7 , E = Portb.6 , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5
Config Timer1 = Counter , Edge = Falling

Config Portd.2 = Output
Counter1 = 0
Dim A As Word
Portd.2 = 0
Cls
Do
A = Counter1
Locate 1 , 1
Lcd A
If A = 10 Then

Counter1 = 0
Portd.2 = 1
wait 1
Portd.2 = 0
Cls

End If
Loop
End
سلام
واسه شمارش ده هزار در این خط بجای 10 مقدار ده هزار بنویسید If A = 10 Then
شمارش پالس این برنامه از طریق پایه (مثلا t1یا همون پایه شماره دو mega32 ) وقفه خارجی انجام میشه پالس ورودی  هم توی برنامه حساس به پالس با لبه پایین رونده (falling)تعریف شده
زمان تاخیر رو هم با تایمر بسازید که شمارش مختل نشه
موفق باشید
(۲۳-فروردین-۱۳۹۷, ۰۲:۲۷:۴۱)questnet نوشته است: [ -> ]با سلام
من تازه با avr آشنا شدم و می خواستم ازتون یک کمک بگیرم در رابطه با یک برنامه خیلی ساده (البته برای شما)

امکان داره یک برنامه با بسکام و atmega32  برای من بنویسید که بتونه
یک مقدار پالس بگیره (مثلا 10 هزار تا) بعد یک ثانیه یک پایه رو برای من یک کنه و دوباره صفر کنه
من می خواهم این برنامه دور یک گیربکس رو بشماره برام  و روی lcd تغداد دور یا پالس رو نشون بده (برای این کار یک پراکسی نصب کرده ام که با هر دور یک تیغه قطع و وصل به من میده) و وقتی به عدد setpoint (مثلا 10 هزار دور) رسید عدد روی lcd صفر بشه و یک led به مدت یک ثانیه روش بشه و خاموش بشه و دوباره شمارش از صفر شروع بشه و دائم کار کنه

عزیزان لطف کردن این برنامه رو نوشتن ولی این برنامه input نداره و من نمی تونم دور گیربکس رو که یه پالس 5 ولتی هست رو بدم به میکرو


کد:
$regfile "m32def.dat"
$crystal = 1000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portb.7 , E = Portb.6 , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5
Config Timer1 = Counter , Edge = Falling

Config Portd.2 = Output
Counter1 = 0
Dim A As Word
Portd.2 = 0
Cls
Do
A = Counter1
Locate 1 , 1
Lcd A
If A = 10 Then

Counter1 = 0
Portd.2 = 1
wait 1
Portd.2 = 0
Cls

End If
Loop
End

ببخشید من متوجه نشدم که باید مثلا میکرو سوییچ رو چطوری وصل کنم چون من می خواهم تعداد دور یک موتور کریبکس رو بشمارم و با هر دور گیربکس مثلا یک میکرو سوئیچ تحریک میشه و قطع میشه می خوام اگز این میکرو سوئیچ مثلا 10 هزار بار قطع و وصل شد یک led به مدت مثلا یک ثانیه روشن بشه و این حرکت دائم تکرار بشه
سلام
این تصویر از مدار هست

[تصویر:  44.JPG] 

اون دکمه نقش میکرو سوئیچو داره
فایل شبیه سازی هم پیوست کردم

موفق باشید
(۲۷-فروردین-۱۳۹۷, ۲۳:۵۷:۳۷)questnet نوشته است: [ -> ]
(۲۳-فروردین-۱۳۹۷, ۰۲:۲۷:۴۱)questnet نوشته است: [ -> ]با سلام
من تازه با avr آشنا شدم و می خواستم ازتون یک کمک بگیرم در رابطه با یک برنامه خیلی ساده (البته برای شما)

امکان داره یک برنامه با بسکام و atmega32  برای من بنویسید که بتونه
یک مقدار پالس بگیره (مثلا 10 هزار تا) بعد یک ثانیه یک پایه رو برای من یک کنه و دوباره صفر کنه
من می خواهم این برنامه دور یک گیربکس رو بشماره برام  و روی lcd تغداد دور یا پالس رو نشون بده (برای این کار یک پراکسی نصب کرده ام که با هر دور یک تیغه قطع و وصل به من میده) و وقتی به عدد setpoint (مثلا 10 هزار دور) رسید عدد روی lcd صفر بشه و یک led به مدت یک ثانیه روش بشه و خاموش بشه و دوباره شمارش از صفر شروع بشه و دائم کار کنه

عزیزان لطف کردن این برنامه رو نوشتن ولی این برنامه input نداره و من نمی تونم دور گیربکس رو که یه پالس 5 ولتی هست رو بدم به میکرو


کد:
$regfile "m32def.dat"
$crystal = 1000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portb.7 , E = Portb.6 , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5
Config Timer1 = Counter , Edge = Falling

Config Portd.2 = Output
Counter1 = 0
Dim A As Word
Portd.2 = 0
Cls
Do
A = Counter1
Locate 1 , 1
Lcd A
If A = 10 Then

Counter1 = 0
Portd.2 = 1
wait 1
Portd.2 = 0
Cls

End If
Loop
End

ببخشید من متوجه نشدم که باید مثلا میکرو سوییچ رو چطوری وصل کنم چون من می خواهم تعداد دور یک موتور کریبکس رو بشمارم و با هر دور گیربکس مثلا یک میکرو سوئیچ تحریک میشه و قطع میشه می خوام اگز این میکرو سوئیچ مثلا 10 هزار بار قطع و وصل شد یک led به مدت مثلا یک ثانیه روشن بشه و این حرکت دائم تکرار بشه
ممنون از دوستان
برنامه رو نوشتم ولی بازم یک مشکل کوجک دارم و اون اینه که با هر بار تحریم میکروسوئیچ کانتر چندین عدد میندازه مثلا از روی 5 میپره رو 25 
آیا راه حلی داره؟
سلام خسته نباشید
این مشکل ناشی از سرعت زیاد میکرو در شمارش و عمل کردن چندباره میکرو سوئیچ در طی یک بار فشرده شدنه 
بنظرم بجای استفاده از میکرو سوئیچ از یه سنسور مثل مادون قرمز استفاده کنید
عکس یه مدار رو  برای نمونه پیوست کردم واسه تغییر وضعیت این مدار و ارسال پالس واسه شمارش به ازای هر دور موتور باید یکبار ارتباط نوری بین فتودیود ها قطع بشه
(بجای lm324 میشه از lm324 استفاده کرد)
اگ دوباره سوالی داشتین زیر همین تاپیک پست بزارید نیازی به ایجاد پست جدید نیست
موفق باشید
(۰۹-اردیبهشت-۱۳۹۷, ۱۵:۴۴:۳۶)1نفر نوشته است: [ -> ]سلام خسته نباشید
این مشکل ناشی از سرعت زیاد میکرو در شمارش و عمل کردن چندباره میکرو سوئیچ در طی یک بار فشرده شدنه 
بنظرم بجای استفاده از میکرو سوئیچ از یه سنسور مثل مادون قرمز استفاده کنید
عکس یه مدار رو  برای نمونه پیوست کردم واسه تغییر وضعیت این مدار و ارسال پالس واسه شمارش به ازای هر دور موتور باید یکبار ارتباط نوری بین فتودیود ها قطع بشه
(بجای lm324 میشه از lm324 استفاده کرد)
اگ دوباره سوالی داشتین زیر همین تاپیک پست بزارید نیازی به ایجاد پست جدید نیست
موفق باشید
ممنون  
ولی میشه بجای این فتودیود از یک ترانزیستور استفاده کنم که برام مثل یک سوئیچ عمل کنه
البته ببخشید من اطلاعات الکترونیکی ام خیلی خیلی کمه اگه اگه میشه مدارش روهم بگذارید
یا راه دیگری نداره ؟
سلام
ترانزیستور رو چجوری بکار ببرین؟منظورتون اینه که ترانزیستور توی حالت سوئیچ بکار ببرین سیگنال بیسش دوباره از همون میکرو سوئیچه؟
منظورتون کدوم مدار هست؟اگه مدار پست قبل رو میگید زیر پست تصویرش پیوست شده
این پیشنهادو دادم که دیگه از میکرو سوئیچ ( اتصال مکانیکی) استفاده نشه