שְׁאֵלָה:
שליטה על כונן התקליטונים עם Arduino
Jeff Lett
2014-08-10 02:15:58 UTC
view on stackexchange narkive permalink

אני נתקל בבעיות בשליטה על כונן תקליטונים בגודל 3.5 אינץ 'עם ארדואינו יוניו.

יש לי את כונן התקליטונים מופעל באמצעות אספקת חשמל ממוחשבת והארדואינו מופעל על ידי מחשב שלי USB. חתכתי את הסרט של מחבר IDC בעל 34 פינים כדי להיות מסוגל לנתב את הפינים לארדואינו שלי. אני מסוגל להפעיל את מנוע התקליטון ולהניע את ראש הקריאה / כתיבה קדימה ואחורה, אבל אני אף פעם לא מסוגל לקרוא פעימות מהסיכות של מסלול 0 או אינדקס.

יש לי סיכות 7, 15, 17, 19 ו -25 מההתקליטון שכולו מקורקע לארדואינו שלי, ויש לי סיכות 8, 16, 18, 20 ו -26 מהדיסקט המחובר לארדואינו כסיכות פלט כדי שאוכל לשלוט בכונן.

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

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

  2 / REDWC בחירת צפיפות קלט 4 n / c N / A שמור 6 n / c N / A שמור 8 / INDEX פלט אינדקס 10 / MOTEA קלט מנוע אפשר כונן כניסה 12 / DRVSB Sel B 14 / DRVSA כונן כניסה Sel A 16 / MOTEB מנוע קלט אפשר B 18 / DIR קלט כיוון 20 / STEP קלט שלב 22 / WDATE קלט כתיבת נתונים 24 / WGATE קלט תקליטונים מאפשרים 26 / TRK00 מסלול פלט 0 28 / WPT פלט כתיבת הגנה 30 / RDATA פלט קריאת נתונים 32 / SIDE1 בחר ראש כניסה 34 / DSKCHG פלט דיסק שינוי / מוכן  

הנה סכמה של מה שחיברתי (לוח הלוח בתרשים מעגל זה מייצג את IDC מחבר המחובר לכונן התקליטונים בגודל 3.5 אינץ '.)

Floppy & Arduino Connections

הנה תמונה של מחבר IDC ואני מתויג אילו חוטים מחוברים לארדואינו.

Labelled IDC Connector

הנה הקוד שאני מריץ.

  // קבועים
סטטי const int IN = LOW; const const int OUT = HIGH; const int int pulseDelayTime = 6; // pinsint indexPin = 2; // 8 בכונן INDEXint track0Pin = 3; // 26 בכונן. מסלול 0int dirPin = 6; // 18 על הכונן. DIRECTIONint stepPin = 7; // 20 בכונן. STEPint motorEnableBPin = 9; // 16 בכונן. מנוע הפעל מנוע ארוך טווח חתום SpinTime = 1000UL; // בהגדרת msvoid () {// עיכוב עיכוב ראשוני (3000); // הגדרת צג סדרתי Serial.begin (9600); // סיכות התקנה. pinMode (dirPin, OUTPUT); pinMode (stepPin, OUTPUT); pinMode (motorEnableBPin, OUTPUT); pinMode (indexPin, INPUT); pinMode (track0Pin, INPUT); // כבה את המנוע בהתחלה DigitalWrite (motorEnableBPin, HIGH); // מצב ההדפסה כאן. printState ("ההתקנה בוצעה."); // סובב את הדיסק קצת. printState ("התחל לסובב מנוע"); spinMotorForThisManyMs (motorSpinTime); spinMotorForThisManyMs (motorSpinTime); printState ("בוצע סיבוב מנוע"); // צעד לקרוא / לכתוב ראש כל הדרך פנימה. stepAllTheWayIn (); // סובב את הדיסק עוד קצת. printState ("התחל לסובב מנוע"); spinMotorForThisManyMs (motorSpinTime); spinMotorForThisManyMs (motorSpinTime); printState ("בוצע סיבוב מנוע"); // צעד לקרוא / לכתוב ראש כל הדרך החוצה. stepAllTheWayOut (); // סובב את הדיסק עוד יותר. printState ("התחל לסובב מנוע"); spinMotorForThisManyMs (motorSpinTime); spinMotorForThisManyMs (motorSpinTime); printState ("בוצע סיבוב מנוע"); // אף פעם לא משלים. waitForIndex ();} loop void () {} // מסובב את מנוע הדיסק למספר שניות ומדפיס את spinMotorForThisManyMs (לא חתום ארוך msToSpin) {// מתחיל להסתובב digitalWrite (motorEnableBPin, LOW); // עיכוב .. המשך להדפיס את המדינה לא חתומה maxTimeMs = millis () + msToSpin; בעוד (מיליס () < maxTimeMs) {printState ("ספינינג"); } // הפסק את סיבוב digitalWrite (motorEnableBPin, HIGH);} // צעד את ראש הקריאה / הכתיבה עד לשלב הצנטרוויאלי AllTheWayIn () {for (int i = 0; i<100; i ++) {printState ("Stepping In") ; stepInALittle ();
}} // שלב את ראש הקריאה / הכתיבה כל הדרך אל השלב החיצוני-חיצוני AllTheWayOut () {for (int i = 0; i<100; i ++) {printState ("Stepping Out"); stepOutALittle (); }} // הדפס את מצב האינדקס ו trackvoid printState (const char * charPrint) {Serial.print ("Index:"); Serial.print (digitalRead (indexPin)); Serial.print ("מסלול:"); Serial.print (digitalRead (track0Pin)); Serial.print (""); Serial.println (charPrint);} // הזז את הראש כלפי חוץ צעד קטןvoidOutALittle () {digitalWrite (dirPin, HIGH); stepPulse ();} // הזז את הראש לכיוון המרכז stepInALittle littlevoid () {digitalWrite (dirPin, LOW); stepPulse ();} // דופק את הצעד pinvoid stepPulse () {digitalWrite (stepPin, LOW); עיכוב (pulseDelayTime); digitalWrite (stepPin, HIGH);} // מחכה שהאינדקס יופעל. זה אף פעם לא מסתיים.מנע waitForIndex () {printState ("מתחיל לחכות לסיכת אינדקס לדופק"); // התחל לסובב digitalWrite (motorEnableBPin, LOW); // המתן לדופק בזמן (digitalRead (indexPin)); // המתן לסוף הדופק 0 בזמן (! digitalRead (indexPin)); printState ("סוף ההמתנה לדופק האינדקס"); // הפסק להסתובב digitalWrite (motorEnableBPin, HIGH);}  

הנה הפלט שאני מקבל.

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

עדכון: אני מקבל כעת את התוצאות הצפויות שלי עקב התשובה של geometrikal. בעת חקר הבעיה מצאתי כמה דוגמאות קוד של ארדואינו ל- Floppy Drive. שמתי לב שהם מכוונים את סיכות הקלט שלהם ל- HIGH, אך מעולם לא הבנתי מדוע הם עושים זאת. לאחר תיקון הבעיה, מצאתי זאת בתיעוד כלשהו של ארדואינו (שגרם לי להבין את דוגמאות הקוד שהיו לי בשימוש בגרסה ישנה יותר של ארדוינו IDE):

"לפני ארדואינו 1.0.1, זה היה ניתן להגדיר את המשיכות הפנימיות באופן הבא: "

  pinMode (pin, INPUT); // הגדר סיכה ל- inputdigitalWrite (pin, HIGH); // הפעל נגדי pullup`  

בארדואינו 1.0.1+ אתה יכול לעשות זאת בדרך זו.

  pinMode (pin, INPUT_PULLUP);  קוד> 
שתי השיטות לאפשר עבודת משיכה. השיטה השנייה, תוך שימוש ב- INPUT_PULLUP pinMode, טובה יותר הן מכיוון שהיא משתמשת בשורה אחת פחות והן בגלל שהיא הרבה יותר קלה לקריאה.
שתיים תשובות:
geometrikal
2014-08-10 07:48:03 UTC
view on stackexchange narkive permalink

על פי זה (קישור מת):

http://bitsavers.trailing-edge.com/pdf/nec/FD1035_Product_Description_Jul84.pdf

זהו עותק מאוחסן בארכיון של FD1035 3.5 "כונן תקליטונים: תיאור מוצר יולי 1984 - PDF:

https://archive.org/details/bitsavers_necFD1035Pl84_876629

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

  pinMode (indexPin, INPUT_PULLUP); pinMode (track0Pin, INPUT_PULLUP);  
אני לא יכול להודות לך מספיק. זה בדיוק מה שהייתי צריך.
jfpoilpret
2014-08-10 02:42:51 UTC
view on stackexchange narkive permalink

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

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

השינויים שעליך לבצע הם:

motorSpinTime = 1000UL לא חתום; // ב- ms

ו-:

  // מסובב את מנוע הדיסק למספר ms ומדפיס את spinMotorForThisManyMs (ללא msToSpin ארוך שלא חתום) {/ / התחל להסתובב digitalWrite (motorEnableBPin, LOW); // עיכוב .. המשך להדפיס את המדינה לא חתומה maxTimeMs = millis () + msToSpin; בעוד (מיליס () < maxTimeMs) {printState ("ספינינג"); } // הפסק להסתובב digitalWrite (motorEnableBPin, HIGH);}  

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

תפיסה יפה! למרבה הצער, שינוי קוד זה אינו מתקן את הפלט הבלתי צפוי שאני מקבל. אני עדיין מקבל את כל ה- 0 עבור האינדקס ועוקב אחר סיכות 0. אני עדיין סתום. הייתי אומר שאולי הכונן גרוע אבל קניתי 2 כונני תקליטונים בגודל 3.5 אינץ 'לפרויקט הזה, ואני מקבל את אותה תפוקה עם שניהם (אני מניח ששניהם יכולים להיות גרועים, אבל מה הסיכוי לכך?).
זה עשוי להיות חשוב, אך אינו עונה בשום צורה על השאלה שנשאלה, וכך גם סוג הנקודה שיש להעיר כהערה.


שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 3.0 עליו הוא מופץ.
Loading...