قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

Hussain800
:: مهندس متميز ::
تاريخ التسجيل: Apr 2012
المشاركات: 638
نشاط [ Hussain800 ]
قوة السمعة:0
قديم 09-12-2017, 10:32 PM المشاركة 1   
افتراضي الرجاء المساعدة فى توضيح برمجة مسجل الازاحة مع الاردوينو Twitter FaceBook Google+



السلام عليكم ورحمة الله وبركاته
الرجاء من الاهوة الاعضاء لمن لدية فكرة موسعة على برمجة الاردوينو عندى مشكلة فى برمجة الادروينو مع مسجل الازاحة 74hc595 ممكن ان تبرمج مسجل واحد مع 8 ليدات لاكن تبرمج مسجلين على 16 ليد لم افهمها كويس ماعرفتش الزاى ابرمجهم هى تجربة لدارة بها عدد 8 ليدات عن طريق مسجل الازاحة .. لاكن انا عاوز ازيد عدد 8 ليدات اخرى يعنى يبقى مجموعهم 16 ليد اضفت مسجل اخر وربطت علية الليدات لاكن تشتغل الليدات مع بعضها بنفس الحركات يعنى المسجل التانى يقوم بنس الحركات كما فى المسجل الاول فى نفس الوقت وانا اريدها ان تشتغل بشكل تسلسلى يعنى على التوالى من اول ليد الى اخر ليد ..
الرجاء المساعده واليكم الدار والبرنامج .





التجربة 2.DSN is not allowed. Allowed extensions: jpg,jpeg,png,gif,bmp

اعلانات

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 12,214
نشاط [ ماجد عباس محمد ]
قوة السمعة:408
قديم 10-12-2017, 05:27 AM المشاركة 2   
افتراضي


هل هذا يحدث فى المحاكاة أم فى الواقع؟

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

Hussain800
:: مهندس متميز ::
تاريخ التسجيل: Apr 2012
المشاركات: 638
نشاط [ Hussain800 ]
قوة السمعة:0
قديم 11-12-2017, 02:35 AM المشاركة 3   
افتراضي


السلام عليكم
انا جربت فى الم
حاكاة فقط


ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 12,214
نشاط [ ماجد عباس محمد ]
قوة السمعة:408
قديم 11-12-2017, 04:54 AM المشاركة 4   
افتراضي


معذرة أخى الكريم أنا لا أرى أى خطأ فى الدائرة و أظنها تعمل فى الواقع

كل ما يمكننى قوله أن المقاومة R9 لا حاجة لها و يمكن رفعها و ترك الطرف وهو خرج بدون توصيل


محمد إلياس
:: مهندس جيد ::
تاريخ التسجيل: Jan 2017
المشاركات: 230
نشاط [ محمد إلياس ]
قوة السمعة:0
قديم 11-12-2017, 04:27 PM المشاركة 5   
افتراضي


السلام عليكم
اطلع على هذا المشروع المماثل ممكن يفيدك:
التوصيل:

الكود (حسب المصدر):
كود:
int latchPin = 8;
int clockPin = 12;
int dataPin = 11;

int numOfRegisters = 2;
byte* registerState;

long effectId = 0;
long prevEffect = 0;
long effectRepeat = 0;
long effectSpeed = 30;

void setup() {
	//Initialize array
	registerState = new byte[numOfRegisters];
	for (size_t i = 0; i < numOfRegisters; i++) {
		registerState[i] = 0;
	}

	//set pins to output so you can control the shift register
	pinMode(latchPin, OUTPUT);
	pinMode(clockPin, OUTPUT);
	pinMode(dataPin, OUTPUT);
}

void loop() {
	do{
		effectId = random(6);
	} while (effectId == prevEffect);
	prevEffect = effectId;

	switch (effectId)
	{
	case 0:
		effectRepeat = random(1, 2);
		break;
	case 1:
		effectRepeat = random(1, 2);
		break;
	case 3:
		effectRepeat = random(1, 5);
		break;
	case 4:
		effectRepeat = random(1, 2);
		break;
	case 5:
		effectRepeat = random(1, 2);
		break;
	}

	for (int i = 0; i < effectRepeat; i++) {
		effectSpeed = random(10, 90);

		switch (effectId)
		{
		case 0:
			effectA(effectSpeed);
			break;
		case 1:
			effectB(effectSpeed);
			break;
		case 3:
			effectC(effectSpeed);
			break;
		case 4:
			effectD(effectSpeed);
			break;
		case 6:
			effectE(effectSpeed);
			break;
		}
	}
}

void effectA(int speed){
	for (int i = 0; i < 16; i++){
		for (int k = i; k < 16; k++){
			regWrite(k, HIGH);
			delay(speed);
			regWrite(k, LOW);
		}

		regWrite(i, HIGH);
	}
}

void effectB(int speed){
	for (int i = 15; i >= 0; i--){
		for (int k = 0; k < i; k++){
			regWrite(k, HIGH);
			delay(speed);
			regWrite(k, LOW);
		}

		regWrite(i, HIGH);
	}
}

void effectC(int speed){
	int prevI = 0;
	for (int i = 0; i < 16; i++){
		regWrite(prevI, LOW);
		regWrite(i, HIGH);
		prevI = i;

		delay(speed);
	}

	for (int i = 15; i >= 0; i--){
		regWrite(prevI, LOW);
		regWrite(i, HIGH);
		prevI = i;

		delay(speed);
	}
}

void effectD(int speed){
	for (int i = 0; i < 8; i++){
		for (int k = i; k < 8; k++)
		{
			regWrite(k, HIGH);
			regWrite(15 - k, HIGH);
			delay(speed);
			regWrite(k, LOW);
			regWrite(15 - k, LOW);
		}

		regWrite(i, HIGH);
		regWrite(15 - i, HIGH);
	}
}

void effectE(int speed){
	for (int i = 7; i >= 0; i--){
		for (int k = 0; k <= i; k++)
		{
			regWrite(k, HIGH);
			regWrite(15 - k, HIGH);
			delay(speed);
			regWrite(k, LOW);
			regWrite(15 - k, LOW);
		}

		regWrite(i, HIGH);
		regWrite(15 - i, HIGH);
	}
}

void regWrite(int pin, bool state){
	//Determines register
	int reg = pin / 8;
	//Determines pin for actual register
	int actualPin = pin - (8 * reg);

	//Begin session
	digitalWrite(latchPin, LOW);

	for (int i = 0; i < numOfRegisters; i++){
		//Get actual states for register
		byte* states = &registerState[i];

		//Update state
		if (i == reg){
			bitWrite(*states, actualPin, state);
		}

		//Write
		shiftOut(dataPin, clockPin, MSBFIRST, *states);
	}

	//End session
	digitalWrite(latchPin, HIGH);
}
رابط الكود للتحقق من صحته:
https://github.com/janisrove/Arduino...tRegisters.ino

المرجع:
http://www.instructables.com/id/Ardu...ft-registers-/


Hussain800
:: مهندس متميز ::
تاريخ التسجيل: Apr 2012
المشاركات: 638
نشاط [ Hussain800 ]
قوة السمعة:0
قديم 15-12-2017, 09:47 PM المشاركة 6   
win


السلام عليكم ورحمة الله وبركاته
بارك الله فيكم اخوتى على المساعدة اخى ماجد واخى الياس .
اشتغلت دارتى تمام ولاكن بعد ماغيرت مداخل مسجل الازاحة فى الكود .هكدا اشتغت تمام بالرغم من انه فى الطريقة الاولى توزيع البنات تمام والى هلا انا مستغرب ما الفرق وانظرو الى التغيير بالصوره ..
الكود الاصلى هكدا .

اللى انا غيرته هو انو بدلت رقم 7 برقم 8 .. هكدا اشتغلت الدارة تمام ؟؟؟
والله الموفق


ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 12,214
نشاط [ ماجد عباس محمد ]
قوة السمعة:408
قديم 16-12-2017, 05:03 AM المشاركة 7   
افتراضي


هل ابقيت أيضا على
Clock_Pin=8
أى الطرفان بذات ال PIN?

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 11:10 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025