نمیدونم با طرز کار کنتاکتورها آشنایی دارید یا نهنقل قول:
منظورتون رله و خود نگه دار هست؟
ولی دقیقا عملکردی مشابه به کنتاکتور خواهد داشت با این تفاوت که به جای استفاده از کنتاکتور از رله استفاده میکنیم
Printable View
نمیدونم با طرز کار کنتاکتورها آشنایی دارید یا نهنقل قول:
منظورتون رله و خود نگه دار هست؟
ولی دقیقا عملکردی مشابه به کنتاکتور خواهد داشت با این تفاوت که به جای استفاده از کنتاکتور از رله استفاده میکنیم
سلام خسته نباشید
من از طریق پورت سریال اطلاعات از میکرو میگیرم و در کامپیوتر نمایش میدهم
حالا من میخوام از کامپیوتر اطلاعات را ارسال کنم و میکرو دریافت کند عملیات انجام بده
من دو چیز را میخوام بدونم
1- با چه دستوری اطلاعات را به میکرو بدهم vb
2- با چه دستوری میکرو اطلاعات را از پورت سریال درافت کند
البته طی تحقیقاتی که کردم با دستور input میشود اینکار را کرد ولی خودم هرچه قدر سعی کردم نشد
من این برنامه را نوشتم ولی زمانی که اجرا میکنم hello را نمایش میدهد و دیگر هیچ چیزی نمایش نمیدهد
با توجه به اینکه من از طریق یک برنامه اطلاعات را میفرستم
البته تو خود شبیه ساز بسکام خوب کار میکنه ولی...
لطف کنید اگر برنامه من ایراد داد بگید ا یک برنامه کامل اینجا بزارید تا بتوان ازش استفاده کرد
با تشکر
$regfile = "m32def.dat"
$crystal = 1000000 'give here the value of the X-tal you use in Hertz
$baud = 1200
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Pinb.0 , E = Pinb.1 , Db4 = Pinb.2 , Db5 = Pinb.3 , Db6 = Pinb.4 , Db7 = Pinb.5
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Dim A As Word , Sum As Word , N As Word , C As Single , W As Integer
Config Porta = Input
Wait 1
Cursor Off
Cls
Locate 1 , 5
Lcd "Hello"
Wait 1
Cls
Do
W = 0
Input "enter number" , W
Locate 1 , 1
Lcd W
Loop
End
اوالا اینکه enable global interrupt
بعدشم اینکه بهتره اطلاعات رو از سیستم با استفاده از وقفه دریافت کنی !
سلام
در مورد پروژه شما اگه فقط یک کانال رو می خواهیدکنترل کنید یه راه خیلی ساده و کوتاه وجود داره که نیازی هم به میکرو نداره:لبخند:
در مورد برنامه باید از VB چهار بایت رو ارسال کنید
اگه ار دستور waitkey استفاده کنید حتما موفق می شید یا مستقیما از وقفه پورت سریال و رجیستر های سریال پورت استفاده کنید
مثال:
Open "comd.7:9600,8,n,1" For Output As #1
Printbin #1 , 64 ; 17 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 0 ; 81 ; 10
Close #1
'Waitms 10
Open "comd.6:9600,8,n,1" For Input As #2
For I = 1 To 13
Buf = Waitkey(#2)
Buffer(i) = Buf
Next I
Close #2
کامپیوتر بنده سوکت پارالل 25 پین نداره میخواستم بدونم آیا میشه از طریق usb اینکارو کرد ؟وچطوری باید باید اینکارو بکنم و چه چیزی باید خریداری کنم و چطوری به برد وصلش کنم و چطوری با vb6 مدیریتش کنم؟
مي خواستم بدونم ميشه تعداد وسايل رو از 8 تا بيشتر كرد (مثلا 12 يا 24) اگه ميشه چه جوري ممنون ميشم اگه توضيح بدين
اگه بخوام این کارو بکنم چه وسیله یا وسیله های را لازم دارم من علاقه مند ولی هیچی بلد نیستم
اگه محدودیت پایه های میکرو منظورتونه . این کار رو میشه با اضافه کردن multiplexer / demultiplexer بر طرف کرد
البته تو نگاه اول به نظر میرسه چون دو تا خروجی نمیتونن تو یک لحضه کنترل بشن این کار محدودیت میاره برامون . اما چون سرعت سوئیچ mux/demux در حد میکروثانیه هست و مدار کنترل شما هم احیانا از رله استفاده می کنه . در عمل رله اصلا متوجه سوئیچها نمیشه
دوستان عزیز و محترم
برداشت خودم رو تا اینجا می گم بعدش رو سوال می کنم مرسی از توجهتون
برای کنترل وسائل الکترونیکی ما نیاز به یه مداری داریم که از یه رله داره تهایتش که ولی جریان وصل باشه رله فعال می شه و دو قسمتی که قراره برق رو وصل کنه رو وصل می کنه خود این برد به کامپیوتر توسط پورت Com وصل شده و با نرم افزار به پورت جریان داده می شه و وقتی این کار شکل گرفت رله فعال می شه تا اینجا برداشت من از این تاپیک هست
حالا
1- دستگاهی که ما باهاش سر و کار داریم یه موتور صنعتی هست برای کنترل این رله ی خاصی نیاز هست؟ (با توجه به توان مورد نیاز)
2- موتور اگر به مدت مثلا ده ثانیه فعال باشه یک متر حرکت می کنه با نرم افزار باید برق رو فعال کنیم بعد از ده ثانیه جریان رو قطع کنیم؟
با تشکر
1. اگه فقط قصد روشن و خاموش کردن موتور رو دارید ، ساده ترین (نه لروما بهتربن) راه استفاده از رله های توان بالا یا رله + کنتاکتور هست(بستگی به توان موتور)
2.اگه مبخوابد با استفاده از موتور چیزی رو حرکت بدید و دفت نسبتا خوبی هم لازم دارید ، این قطع و وصل کردنها اصلا روش خوبی نیست . باید سخت افزار درایور موتو و فیدبک و کنترل کننده (مثل PID) داشته باشید تا بتونید سرعت و گشتاور موتور و در نتیجه موفعیت جسم رو با دقت مناسبی تعیین کنید. ولس اگر مثلا 10 متر و 10.5 متر براتون فرقی نداره همین فطع و وصل میتونه کار رو راه بندازه.
یعنی شما فک می کنین که استفاده از رله + کنتاکتوردقت زمانی نداره؟
یعنی وقتی که ما برق رو می دیم به رله تاخیر زیادی خواهد داشت؟ با انتخاب رله ی مناسب حل نمی شه این مشکل؟
غیر از تاخیر ، شما هیچ فیدبکی از موتور یا موفعیت جسمتون ندارید ، که در این حالت هیج وفت نمیتونید بگید اگه الان توی 10.00 ثانیه مثلا 1.20 متر رو رفت ، دفعه بعد هم توی 10.00 ثانیه همون فدر میره .
چون مثلا موتور و اون جسم یه اینرسی و دینامیکی دارن که، کم و زیاد شدن :وزن جسم (چیزی روش سوار باشه)، اصطکاک ، دمای محیط ، ولتاژ و جریان تغذیه و .... باعث تغییر توی نتیجه میشه و همه اینا هر دفعه با دفعه فبل تفاوت دارن و باعث میشن نتیجه یه تلورانسی داشته باشه(مثلا نیم متر) . حالا نویز و اغتشاش خارجی رو هم اضافه کنبد اوضاع بد تر مبشه . همچنین زمان کلید زنی رله ها و کنتاکتور ها (علاوه بر تاحیرشون)ثابت نیستن و مثلا یکبار 0.04 ثانیه و یکبار 0.09 ثانیه میتونه باشه. پس راه حلش اینه یه فیدبک (سنسور سرعت موتو یا موفعیت جسم) + یه کنترلکننده (مثلا pid) داشته باشین تا با توجه و وضعیت جسم فرمان ارسال بشه ، نه چشم بسته .
علاوه بر اون ،موفعیت جسم شما ، با مدت زمان وصل بودن برقش رایطه خطی نداره که . یعنی اگه 10 ثانیه 1 متر میره ، فطعا توی 20 ثانیه 2 متر یا توی 5 ثانیه نیم متر نمیره ! ممکنه 2.14 متر و 0.43 متر بره.برای همین به درایور موتور نیاز دارید تا این رابطه رو براتون خطی کنه .
در کل کنترل موفعیت دقیق یه همچین سیستم ساده ای ، بسته به میزان دفت مورد نیاز ، میتونه خیلی پیچیده باشه.
سلام.
من این قطعاتی که برای شروع کار با usb در اینجا https://barnamenevis.org/showthread.p...AVR-PIC-...%29 گفته شده رو تهیه کردم. حالا نقشه ی مدار کجاست ؟
برای شروع بهتره ارتباط سریال رو انجام بدید نه USB . توضیحات لازم برای ارتباط سریال تو پست چهارم همین تاپیک گفته شده. اگر کامپیوتر(لپتاپ) شما پورت سریال نداره ، فقط کافیه از یه کابل سریال به USB استفاده کنید(با همون سخت افزار سریال).
در فدم بعدی میتونید از IC های FTDI که فبلا تو همین تالار در موردش بحث شده ، استفاده کنید.
سلام دوستان
من مدار ارتباط میکرو با پورت سریال را ساختم
اما هرچه پروگرامش میکنم که مثلا hello را به پورت ارسال کنه ، به جاش یک سری عدد و حروف کاملا بی ارتباط به این کلمه را ارسال می کنه
به نظر شما مشکل کجاست؟
متشکرم که راهنمایی می کنید
به احتمال زیاد Baud rate ها یکی نیست . مثلا دوطرف (میکرو و pc ) رو 9600 تنظیم کنید.
سلام دوستان خسته نباشید
می بخشید من
می خوام یه برنامه بنویسم که باهاش بشه بین دو تاکامپیوتر که از طریق LPT دوطرفه به هم وصل شدن کارراکتر ارسال کنم:
از دستور
outport(0x378,'value')
و فایل Dos.h استفاده می کنم ولی تو کامپیوتر مقصد مقدار پین تغییر نمی کنه می شه کمکم کنید؟
سلام دوستان
من سایتی ایرانی پیدا کردم که برد داره که میتونه از طریق پورت USBوسایل برقی را کنترل کنه. ضمنا نمونه برنامه VB و Delphi v رو هم داره
http://www.shayantec.com/products.htm
سلام ،
نمونه برای مدار های پیچیده تر هم دارید ؟
مثلا ۳۲ تا یا بیشتر خروجی I/O داشته باشه و همین تعداد ورودی برای دریاف اطلاعات سنسور ها .
البته دیمر هم هست بشه کنترلش کرد .
نمیدونم پورت سریال تعداد بالا رو پشتیبانی میکنه یا نه ولی من یک سری مدار از قبل آماده دیدم که از طریق شبکه یا USB یک سری رله رو میشه باهاشون کنترل کرد - ولی ۲ تا ایراد عمده دارند :
۱ - یه جورایی کنترل یک یا چند دیمر از طریقشون افسانه هستش .
۲ - یک رله یک سره وصل و یا قطع هستش و نمیشه اون رو به صورت موقتی قطع و وصل کرد (مثل این شاستی فشاری ها) .
دوستان اگر راهی بلدند راهنمایی کنند که خیلی گیرم :ناراحت:
براي افزايش I/O مي شه از لچ استفاده كرد .
اون چيزايي هم كه براي پورت سريال ( يا USB ) ديد ، در واقع يك دستگاه جانبي هست كه درش ميكرو كنترلر هست.
اگر برنامه ي كاربري سمت PC رو خوب بتونيد بنويسيد ، مواردي رو كه بالا گفتيد مي شه انجام داد ...
بهترین لچ برای افزایش خروجی 74hc595 است
میشه کلی از اینا رو پشت سر هم بست به صورت سریال فقط 3 تا سیم بعد n تا خروجی داشت
از این ای سی تو تابلو روانها زیاد استفاده میشه
برای ورودی هم میشه از 74h165 استفاده کرد
سلام
میخواستم بدونم تو این برنامه چه جوری شماره پورت رو پیدا میکنه
یعدش من از کنورتور db 9 to db 25 استفاده میکنم اینم عکسش
http://www.computercableinc.com/ccin...M-BestLink.JPG
با این هم میشه راه انداخت یا فقط با کیبل LPT
سلام
چه جوری میشه کد رو ذخیره کرد داخل ic که مثلا اگه کامپیوتر هم خاموش بشه دیگه هم کار کنه
:متفکر:
سلام دوستان
من این وسیله رو ساختم با Uart
ولی بعد از 1-2 ساعت ارتباط با میکرو قطع میشه !
اینم کد میکرو :
$regfile "m8def.dat"
$crystal = 8000000
$baud = 9600
Config Serialin = Normal
Config Serialout = Normal
'------------------------------------------------------------------------------------
Config Portb.0 = Output ' Power
Config Portb.1 = Output ' Relay (1)
Config Portb.2 = Output ' Relay (2)
Config Portb.3 = Output ' Relay (3)
Config Portb.4 = Output ' Relay (4)
Dim A As Byte
Dim R As Bit
R = 0
Set Portb.0
Declare Sub R1(byval A As Byte)
Declare Sub R2(byval A As Byte)
Declare Sub R3(byval A As Byte)
Declare Sub R4(byval A As Byte)
Declare Sub Status()
Do
A = 0
A = Inkey()
If Chr(a) = "R" Then
R = 1
Waitms 100
Print "Y"
Elseif Chr(a) = "S" Then
'-----------------------------------------------------------------------------
Elseif Chr(a) = "1" Or Chr(a) = "5" Then
Call R1(a)
Elseif Chr(a) = "2" Or Chr(a) = "6" Then
Call R2(a)
Elseif Chr(a) = "3" Or Chr(a) = "7" Then
Call R3(a)
Elseif Chr(a) = "4" Or Chr(a) = "8" Then
Call R4(a)
'-----------------------------------------------------------------------------
End If
Loop
Sub R1(byval _a As Byte)
If R = 1 Then
If Chr(a) = "1" Then
Set Portb.1
Elseif Chr(a) = "5" Then
Reset Portb.1
End If
Waitms 50
Print "D"
R = 0
End If
End Sub R1(byval A As Byte)
Sub R2(byval _a As Byte)
If R = 1 Then
If Chr(a) = "2" Then
Set Portb.2
Elseif Chr(a) = "6" Then
Reset Portb.2
End If
Waitms 50
Print "D"
R = 0
End If
End Sub R2(byval A As Byte)
Sub R3(byval _a As Byte)
If R = 1 Then
If Chr(a) = "3" Then
Set Portb.3
Elseif Chr(a) = "7" Then
Reset Portb.3
End If
Waitms 50
Print "D"
R = 0
End If
End Sub R3(byval A As Byte)
Sub R4(byval _a As Byte)
If R = 1 Then
If Chr(a) = "4" Then
Set Portb.4
Elseif Chr(a) = "8" Then
Reset Portb.4
End If
Waitms 50
Print "D"
R = 0
End If
End Sub R4(byval A As Byte)
Sub Status()
If R = 1 Then
If Portb.1 = 1 Then
Print "1"
Else
Print "5"
End If
Waitms 50
If Portb.2 = 1 Then
Print "2"
Else
Print "6"
End If
Waitms 50
If Portb.3 = 1 Then
Print "3"
Else
Print "7"
End If
Waitms 50
If Portb.4 = 1 Then
Print "4"
Else
Print "8"
End If
Waitms 50
Print "D"
R = 0
End If
End Sub Status()
سلام
من میخوام میکرو رو با USB به کامپیوتر وصل بکنم
از این تبدیل های COM به USB هم استفاده کردم ولی هرچی از هر طرف میفرستم یه چیز دیگه میگیرم !
فرکانس فرستنده با گیرنده تفاوت می کنه
سلام من این مدار رو ساختم ولی از کامپیوتر فرمان نمی گیره لطفا یه برنامه برای8 رله بزارید ممنون میشم
ضمیمه 120131
از چه میکرویی استفاده کردی؟
رله ها به چه پایه هایی وصلن؟
برنامه سمت کامپیوتر میخواد
برنامه میکرو هم میخواد که باید با هم هماهنگ باشن
نگفتی کدومشو میخوای
در ضمن این مدارت با چی رله ها رو روشن میکنه؟
از زمان ارسال اولین پست این تایپیک 5 سال میگذره.
همینطوری بعد از مدتها گذرم به برنامه نویس افتاد ,گفتم بیام یه سری به این تایپیک بزنم
خوشحالم که میبینم خیلیا استفاده کردن
امیدوارم ادمین مارو بن نکنه :لبخند:
برنامه نویس ممنون بخاطر هرچی که ازت یاد گرفتم
دمت گرم
من که فیض بردم
در حال حاظر با بورد های آردوینو arduino
به راحتی می تونیداین کار رو انجام بدید
من دارم این پروژه رو با آردوینو شروع می کنم
چون علاوه بر کنترل وسایل از پایه های آردونو می تونی برای دریافت اطلاعات از سنسورهای مختلف استفاده کنید
سلام حالتون خوبه
من يه فركانس متر با تغذيه 9 ولت از 0 تا 50 مگا هرتز ميخام كه حين اندازه گيري در هر ثانيه مقداري رو كه قرائت شده را در يك رم SD ذخيره كنه و بشه با اتصال رم به كامپيوتر اون مقادير رو بصورت اعداد خواند. مثلا در ثانيه اول 8.05866 و در ثانيه دوم 8.054268 و ..... اين مقادير در قالب جدول فايل اكسل يا بصورت فايل تكست ذخيره شه.
با هر بار فعال كردن فركانس متر مقادير در فايل جديد ذخيره بشه.
اين امكان وجود داره؟ هزينه انجام چقدر ميشه؟
سلام:
اسم همه ی زبانها اومده بجز زبان اسمبلی . خب طبیعیه چون همه اسمبلی رو به عدم قابلیت حمل و دشواری گرامر و دشواری دیباگ متهم می کنند.
اما شما یک سری به سایت اسمبلر Fasm که بزنید متوجه می شوید که این اسمبلر قابل حمل و ساده و استثنایی و رایگان در مورد میکروکنترولرها مستندات و برنامه های فراوانی ایجاد کرده .
عملا اسمبلی هم میتونه تو حوزه ی میکروکنترولر مدعی باشه :
ادرس سایت اسمبلر Fasm
https:flatassembler.net
روی عبارت MessageBoard کلیک کنید تا وارد انجمن کاربران زبان اسمبلی شوید .