עבור לתוכן

שליטה במהירות של מנוע עם שלט IR

Featured Replies

פורסם

היי .

בקיצור ולעניין חיברתי מנוע וקולט של IR ו 5 נורות לד

תכנתתי קוד כזה שכל לחיצה על כפתרו הווליום למעלה מדליק עוד נורה ולחיצה על כפתור של הווליום למטה מכבה נורה . כל נורה שנדלקת מוסיפה עוד 20% למהירות של המנוע .

בדקתי בהתחלה את הקטע של הנורות לבד , עבד מעולה !

הבעיה היא כשחיברתי את המנוע , שאני לוחץ בפעם הראשונה על הווליון למעלה הוא מתחיל להסתובב , אבל זהו אחרי זה זה לא עובד עוד .

ההגיון שלי אומר שהמנוע גורם להפרעות בקליטה של הקולט..

מה אני עושה ? (אני לא כל כך יודע לשרטט מעגל אבל השתמשתי בנגד של 200 אוהם לנורות לד , והמנוע חיברתי ישירות..)

פורסם

א. יתכן שהבעיה היא בתוכנה. תדביק לכאן את הקוד שלך.

ב. לא חייב שירטוט. אפשר גם צילום..

פורסם
  • מחבר

אוקיי זה הקוד , (בגדול השתמשתי בדוגמא של הפונקצי ה IRrecvDemo מהספרייה IRremote)

**חשוב לי לציין דברים ששמתי לב , שהמנוע לא מחובר הלדים עובדים מעולה , (או אם במקום מנוע אני מחבר נורת לד היא גם מתחזקת לפי הרמה של ה" ווליום " אז כאילו הבעייה לפי דעתי היא בדוק בחומרה (אולי צריך להוסיף איזה רכיב שלא כללתי שם , לפי דעתי קבל ? )


/*
* IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
* An IR detector/demodulator must be connected to the input RECV_PIN.
* Version 0.1 July, 2009
* Copyright 2009 Ken Shirriff
* http://arcfn.com
*/


#include <IRremote.h>


int myPins[] = {2,3,4,5,6};
int motorPin = 10;
int motorSpeed = 0;
int counter =4;




int RECV_PIN = 11;


IRrecv irrecv(RECV_PIN);


decode_results results;


void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver



pinMode(myPins[0], OUTPUT);
pinMode(myPins[1], OUTPUT);
pinMode(myPins[2], OUTPUT);
pinMode(myPins[3], OUTPUT);
pinMode(myPins[4], OUTPUT);
pinMode(motorPin,OUTPUT);


}


void loop() {
results.value =0;
if (irrecv.decode(&results)) {
Serial.println(results.value);
irrecv.resume(); // Receive the next value
}
delay(200);

// check if you clicked up vol.

if (results.value == 3772833823 && counter >=0)
{
digitalWrite(myPins[counter],HIGH);
counter--;
if (motorSpeed <255)
motorSpeed = motorSpeed+51;
}

// check if you cliecked down vol.

if (results.value == 3772829743 && counter <4 && counter >=-1)
{

digitalWrite(myPins[counter+1],LOW);
counter++;
if (motorSpeed >0)
motorSpeed =motorSpeed-51;
}

analogWrite(motorPin, motorSpeed);




}



הנה 2 תמונות (אם משהו לא ברור תגיד לי ואני אנסה להסביר ..)

54eba32258efc.jpg

54eba3226603c.jpg

פורסם

חיברת עומסים (לדים ומנוע) ישירות לבקר. לא עושים דבר כזה.

הארדואינו לא אמור להתחבר ישירות לעומסים. הוא לא מסוגל לספק את ההספק שאתה מצפה לקבל.

בנוסף, את החשמל אתה מקבל דרך המחשב(USB) שמספק 0.5A במתח של 5V. זה לא מספיק עבור המערכת שבנית.

את הלדים תחבר דרך טרנזיסטורים. תוכל לקרוא כאן איך ולמה:

http://www.sqlskills.com/blogs/paulselec/post/arduino-figuring-out-transistors-and-associated-resistors.aspx

גם את המנוע אל תחבר ישירות. תשתמש בטרנזיסטור ודיודה. תוכל לקרוא כאן איך ולמה:

http://bildr.org/2012/03/rfp30n06le-arduino/

לדעתי הקישורים מסבירים בצורה טובה מאוד. אם יהיו לך שאלות נוספות אשמח להרחיב.

בהצלחה

פורסם
  • מחבר
חיברת עומסים (לדים ומנוע) ישירות לבקר. לא עושים דבר כזה.

הארדואינו לא אמור להתחבר ישירות לעומסים. הוא לא מסוגל לספק את ההספק שאתה מצפה לקבל.

בנוסף, את החשמל אתה מקבל דרך המחשב(USB) שמספק 0.5A במתח של 5V. זה לא מספיק עבור המערכת שבנית.

את הלדים תחבר דרך טרנזיסטורים. תוכל לקרוא כאן איך ולמה:

http://www.sqlskills.com/blogs/paulselec/post/arduino-figuring-out-transistors-and-associated-resistors.aspx

גם את המנוע אל תחבר ישירות. תשתמש בטרנזיסטור ודיודה. תוכל לקרוא כאן איך ולמה:

http://bildr.org/2012/03/rfp30n06le-arduino/

לדעתי הקישורים מסבירים בצורה טובה מאוד. אם יהיו לך שאלות נוספות אשמח להרחיב.

בהצלחה

היי תודה על התשובה המפורטת..

לא הבנתי אז איך אני כן מצליח להפעיל את הנורה והלדים ?

כי אם אני מעלה את הרמה של המנוע להכי גבוה מבלי לחבר את המנוע ואז אני מחבר אותו . הוא עובד על המהירות הכי גבוהה והלדים גם פועלים.

אין אפשרות לחבר סוללה 9V למעגל וככה לא יהיה עומס על הארדואינו

פורסם

כי אם אני מעלה את הרמה של המנוע להכי גבוה מבלי לחבר את המנוע ואז אני מחבר אותו . הוא עובד על המהירות הכי גבוהה והלדים גם פועלים.

לא הבנתי

אין אפשרות לחבר סוללה 9V למעגל וככה לא יהיה עומס על הארדואינו

אם זו היתה שאלה אז כן. אפשרי. וניתן גם על ידי שימוש בספק כוח אחר

פורסם
  • מחבר
כי אם אני מעלה את הרמה של המנוע להכי גבוה מבלי לחבר את המנוע ואז אני מחבר אותו . הוא עובד על המהירות הכי גבוהה והלדים גם פועלים.

לא הבנתי

אין אפשרות לחבר סוללה 9V למעגל וככה לא יהיה עומס על הארדואינו

אם זו היתה שאלה אז כן. אפשרי. וניתן גם על ידי שימוש בספק כוח אחר

לגבי מה שלא הבנת תראה.

אני מנתק את המנוע. מעלה את הרמה של הלדים עד הסוף ומחבר אותו והכל פועל כרגיל. זאת אומרת שהארדואינו כן מספק מספיק זרם לכל המעגל.

ואיך אני מחבר מקור כוח נוסף למעגל ? (ככה אם יהיה יותר מתח והכל יפעל טוב אז אני אדע בוודאות שבאמת הבעיה היתה חוסר. מתח)

פורסם

יתכן שהזרם שהארדואינו מספק אכן מספיק במקרה הזה. אך עדיין אין לחבר את המנוע ישירות לארדואינו.

כדי לחבר מקור מתח נוסף תצטרך להשתמש בטרנזיסטורים (במקרה הזה).

את הטרנזיסטורים אתה מחבר למקור מתח הנוסף ולארדוינו ואת האדמות אתה מקצר.

לדוגמא, במקרה של הלד [תסתכל על השירטוט בלינק הראשון] אתה תחבר את הפלוס של הבטריה ל'5v+' ואת המינוס של הבטריה ל'Gnd' של הארדוינו.

יש לך טרנזיסטורים ונגדים שונים בהישג יד?

פורסם

המעגל שלך מסוכן לארדואינו, הוא בקלות יכול להשרף מהחיבור הזה.

אתה הלדים אתה יכול לחבר בלי בעיה לבקר עם נגד טורי מתאים, ואת המנוע אך ורק דרך טרנזיסטור כפי שנאמר.

כמו כן, תחבר מסנן עבור המקלט IR, תעקוב אחרי דפי הנתונים שלו.

פורסם
  • מחבר
יתכן שהזרם שהארדואינו מספק אכן מספיק במקרה הזה. אך עדיין אין לחבר את המנוע ישירות לארדואינו.

כדי לחבר מקור מתח נוסף תצטרך להשתמש בטרנזיסטורים (במקרה הזה).

את הטרנזיסטורים אתה מחבר למקור מתח הנוסף ולארדוינו ואת האדמות אתה מקצר.

לדוגמא, במקרה של הלד [תסתכל על השירטוט בלינק הראשון] אתה תחבר את הפלוס של הבטריה ל'5v+' ואת המינוס של הבטריה ל'Gnd' של הארדוינו.

יש לך טרנזיסטורים ונגדים שונים בהישג יד?

המעגל שלך מסוכן לארדואינו, הוא בקלות יכול להשרף מהחיבור הזה.

אתה הלדים אתה יכול לחבר בלי בעיה לבקר עם נגד טורי מתאים, ואת המנוע אך ורק דרך טרנזיסטור כפי שנאמר.

כמו כן, תחבר מסנן עבור המקלט IR, תעקוב אחרי דפי הנתונים שלו.

אוקיי אני ממש מתחיל בתחום האלקטרוניקה אני מנסה כמה שיותר ללמוד מכל הפרוייקטים האלה אז חשוב לי שתדריכו אותי להצלחה.

בגדול הזמנתי נגדים מאייבי הם אמורים להגיע בשבוע הקרוב , טרניזסטורים אין לי בשפע אבל הצלחתי לפרק איזה 2 ממכישירים ישנים שלא עובדים כבר..

אז חיפשתי מדריך ביוטיוב איך לחבר (חיברתי ל collector את ה - של הסוללה 9 וולט , ל base דרך נגד של 10K אוהם חיברתי את הפין שאיתו אני מגביר את מהירות המנוע ,ול emitter חיברתי את המנוע)

קיצר זה עבד כמו קסם ! הכל עבד בצורה ממש טובה (גם דרך ה 9 וולט וגם דרך הארדואינו).

יש לי כמה שאלות אליכם רק .

מה הטרנזיסטור עשה שגרם להכל לפעול ככה בצורה טוב ? ( הוא בעצם מתנהג כמו מתג רגיל לא ? )

ומה זה נגד טורי ?

פורסם

במקום שהארדואינו יספק את כל הזרם שמנוע צריך, הטרנזיסטור מספק את הזרם ישירות מהסוללה (שלא עובר דרך הארדואינו) לפי הפקודה מהארדואינו. הטרנזיסטור מתנהג באמת כמו מתג שהארדואינו "לוחץ עליו" כדי להפעיל או לכבות את המנוע.

נגד טורי הוא נגד שמחובר בטור. הכוונה שלי היא שאתה יכול לחבר לד אחד ליציאה של הארדואינו, לשם כך אתה צריך גם נגד שיחובר בטור, כלומר רגל הארדואינו -> לד -> נגד -> אדמה.

כדאי לך ללמוד קצת על חוקי חשמל בסיסים, כמו חוק אום וקירכהוף.

פורסם
  • מחבר
במקום שהארדואינו יספק את כל הזרם שמנוע צריך, הטרנזיסטור מספק את הזרם ישירות מהסוללה (שלא עובר דרך הארדואינו) לפי הפקודה מהארדואינו. הטרנזיסטור מתנהג באמת כמו מתג שהארדואינו "לוחץ עליו" כדי להפעיל או לכבות את המנוע.

נגד טורי הוא נגד שמחובר בטור. הכוונה שלי היא שאתה יכול לחבר לד אחד ליציאה של הארדואינו, לשם כך אתה צריך גם נגד שיחובר בטור, כלומר רגל הארדואינו -> לד -> נגד -> אדמה.

כדאי לך ללמוד קצת על חוקי חשמל בסיסים, כמו חוק אום וקירכהוף.

אני מכיר את חוק אוהם , את קירכהוף לא אבל אני אקרא באינטרנט .

במעגל שעשיתי שמתי נגד טורי לא ? (הלדים מחוברים כל אחד בנפרד לארודינו וכל אחד גם מחובר לנגד שמוביל לאדמה).

ויש לי עוד שאלה שמציקה לי .

מה שמוזר הוא כזה , שאני מחבר את הארודינו ישר למנע כמו בתמונה (עם הטנזיסטור ) זה עדיין עובד טוב ( המנוע מקבל זרם דיי חלש הפעם בערך 2.5 וולט )אבל זה עובד ללא ההפרעות שהיו.

אז מה בעצם עשה הטרנזיסטור שגרם להפרעות של הקולט IR להיפסק ? (או לחילופין מה גרם בעצם להפרעות ההם שהיו ?)

פורסם

כאשר אתה מחבר את הארדואינו ל-USB במחשב, הבקר של ה-USB במחשב מספק את מקור המתח שהוא 5V.

אבל הבקר הזה מוגבל לספק עד 0.5A.

ככה שאם תעבור את הזרם הזה, מקור המתח לא יספק 5V אלא פחות כי הוא פשוט לא מסוגל! (גם הגיוני מבחינת חוק אום)

בוא ניקח לדוגמה מעגל כזה, יש לך 5V והמקור מתח יכול להוציא עד 0.5A. אם תחבר אליו נגד 10 אום, הכל יעבוד בסדר אבל אם תחבר נגד 7 אום, ל-7 אום מקור המתח יצטרך לספק 0.71A אבל בפועל הוא עדיין יספק 0.5A ובמקום זאת, המתח ירד ל-3.5V. כי לפי חוק אום זרם כפול התנגדות שווה למתח לכן: 0.5A * 7 = 3.5V.

גם בל נא נשכח שמיצב המתח יתחמם מאוד.

לא מחברים עומס (מנוע במקרה שלך) לארדואינו ישירות. גם אם חיברת את הארדואינו ישירות לבטריה 9V.

כי על לוח הארדואינו, יש מיצב מתח (המיצב הזה לא עובד אם לא חיברת את הארדואינו לבטריה) 5V שמסוגל להוציא 0.8A, ללדים זה מספיק כי כל לד צריך בממוצע זרם 20mA=0.02A. כדאי לך ללמוד מה ההבדל בין uA, mA, nA, pA.

לד היא מנורה שמבוססת על דיודה (ראה בויקיפדיה מה זה דיודה) לכן צריך להוסיף ללד נגד בטור בשביל להנמיך את הזרם ממקור המתח כי אם לא הלד ישרף. עליך לחשב איזה נגד צריך בשביל שתשיג 20mA בעזרת חוק אום.

למשל אם יש לך מקור מתח 5V עליך לשים נגד של 250 אום בשביל שהזרם יהיה 20mA.

לכל לד אתה צריך נגד כזה. יש אפשרות לחבר נגד משותף אולם עושים את זה רק אם אתה מתכנן להדליק את כל הלדים או אף אחד מהם.

נגיד ויש לך 2 לדים ואתה רוצה לחבר להם נגד משותף, חישוב הנגד הזה יהיה בעזרת זרם של 40mA כי כל אחד 20mA, לכן התוצאה תהיה נגד 125 אום.

התצורה של החיבור יהיה שהלדים יחוברו במקביל אחד לשני והנגד יהיה נגד משותף להם ב-(-) שלהם.

בכל מקרה לא עושים את זה. אם לד אחד ישרף, זה יצור נתק ואז לד אחד יקבל את כל ה-40mA.

לגבי שאלתך של מה גרם להפרעות, כל מנוע יוצר רעשים, והזרם שהוא צורך בהתחלת ההפעלה יותר גדול מהזרם כשהוא צורך שהוא כבר מסתובב, לכן זה יצר קפיצות מתח.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים