int light =11,piezo=3; int button1=0,button2,resister; unsigned long T1,T2=0; int S1=0,S2=0; void setup() { Serial.begin(9600); pinMode(light,OUTPUT); pinMode(piezo,OUTPUT);
حل التمرين الثاني : int LED=3,SW=7,Buzzer=4; int D1=300,D2=600; int x,freq; unsigned long T1=0,T2=0,T3=0; bool s1=0,s2=0; int max=0,min=1023; //----------------------- void setup() { pinMode(LED,OUTPUT); pinMode(Buzzer,OUTPUT); pinMode(SW,INPUT_PULLUP); delay(1000); tone(4,200,200); while (millis()T2+D1) { s1=!s1; digitalWrite(LED,s1); T2=T1; } } else if (T1>T3+D2) { s2=!s2; digitalWrite(LED,s2); T3=T1; } }
حل التمرين الثاني اول شي توصل الضو على الارضي ومع مقاومة على منفذ 12 وتوصل السماعة مع الارضي ومنفذ 8 وتوصل الزر مع الارضي ومنفذ 7 وتوصل المقاومة المتغيرة على الارض و A0 و 5V. وبعدين الكود unsigned long T1=0,T2=0; bool s=0; void setup() { pinMode(12,OUTPUT); pinMode(8,OUTPUT); pinMode(7,INPUT_PULLUP); } void loop() { int D=3000; T1=millis(); int c=digitalRead(7); int x=analogRead(A0); tone(8,x,T1); if(c==0){ D=500; } if(T1>T2+D){ s=!s; digitalWrite(12,s); T2=T1; } } اخذت مساعدة من تعليق Osama اللي تحت او فوق.
يعطيك العافية انا حليت التمرين للجزء الاول فقط بطريقة مختلفة عن يلي بالتعليقات T1=millis(); S=0; x=digitalRead(butoom) ; While(T1 > (T2 - 20 *x){ S =!S; digitalRead(LED, s) ; T2=T1;} صحيحة؟؟؟؟؟؟؟ 🤨 اذا كان الزر on بيطرح من الوقت ٢٠
الي يشاهد المقاطع ويعتقد الامر سهل وان فاهم لما يروح للعملي راح يلاقي حالوا صفر. حاول تشاهد درس وتروح للتنكر وتطبق وحاول تغير بالاوامر شوي لحتى تحس انك فاهم. عشان خطأ في كتابه حرف الف حول حالي
مهندس سامي نشكرك كثير على الدروس .. بارك الله فيك .. عندي سؤال اذا كان الزمن الاطفاء ما يساوي زمن الاشتغال لدايود ضوئي واحد فقط مثلا اذا عندنا عندي LED واحد والمطلوب يكون شغال لمدة ثانية واحدة ثم يطفي لمدة نصف ثانية وبدون استخدام امر الديلاي ؟ وسؤال عندما يستقبل الاردوينو مدخلات من حساسات متنوعة والتنفيذ يكون على هذه (المدخلات التماثلية والرقمية) ونحصل النتايج بدون تاخير ديلاي كيف !؟ كيف نطبق الmillis هنا وممكن تحل لنا السؤال الاخير بهذا الدرس لأن بيفيدنا كثير في فهم دالة الmillis عند وجود مداخل عديدة للاردوينو !؟ وشكرا
السؤال الثاني غير واضح :: حسب فهمي ... فقط ضع كل قراءة حساس في متغير مختلف ، و استخدمها حسابيا في أي شيء. .... و الحقيقة انا حاليا أمنتج دروس متقدمة و يصعب أعود للدروس القديمة
www.tinkercad.com/things/gjLtZklsTXk حاولت أحلها في الرابط السابق ____ لاحظ تشعر إن كل شيء بطيء ... السبب هو قدرة الموقع البرمجية _ لاحظ سرعة التشغيل في الأعلى . . لكن أعتقد أن الكود مكتوب صح ، و بدون تأخير _ توقف
for me ,in the 1st exercise, i used T1 ,2 for the led n1 and T3,4 for the n2,but it didn't work , i think there is a relationship with millis ,it 's more complicated to turn 2 millis in the same loop...,who has an idea ,or the wrong ,share it with me ,please!!
أخي العزيز لدي مشكل في كود ، برمجت الأردوينو ليدور سيرفو الموتور كل اربع ساعات و الشاشة تظهر نتيجة حساس الحرارة كل خمسين ميلي ثانية و لكن الشاشة تظهر النتيجة كل اربع ساعات أي زمن السيرفو موتور ، ما هو الحل ؟؟
@@djaminepira671 اذن سيتوقف الكود عند ال delay الاولى حتى تنتهي المدة ثم يكمل بقية الكود ، طبق دالة ال mills في كل الكود و ان شاء الله يعمل كما تريد ..
بارك الله فيك على الشروح الممتعة والرائعة وجزاك الله ألف خير ورزقك من واسع فضله
كل التحية و الحب و الاحترام و التقدير لاستاذي الذي لم اره في حياتي 3>
حل التمرين الثاني:
int buttom=8;
int spk=9;
int led=13;
int P;
int x;
int ledDelay=500;
bool s=0;
unsigned long T1=0;
unsigned long T2=0;
void setup() {
pinMode(buttom,INPUT_PULLUP);
pinMode(led, OUTPUT);
pinMode(spk, OUTPUT);
}
void loop() {
T1=millis();
if(T1>T2+ledDelay){
s=!s;
T2=T1;
digitalWrite(led,s);}
if(digitalRead(buttom)==0)
ledDelay=100;
else
ledDelay=500;
P=analogRead(A0);
x=map(P,0,1023,500,1000);
tone(spk,x);
}
جامد
عاش
بارك الله فيك واسال الله ان يجعل هذه العلم في مزان حسناتك كل الفخر في بلاد التوحيد حكومتا وشعبا💖💖💖💖
الف شكر ليك و تحية على مجهوداتك العظيمه ...جزاك الله خيرا ... اخي الكريم !!!!
جزاك الله خير
شكرا
int light =11,piezo=3;
int button1=0,button2,resister;
unsigned long T1,T2=0;
int S1=0,S2=0;
void setup() {
Serial.begin(9600);
pinMode(light,OUTPUT);
pinMode(piezo,OUTPUT);
}
void loop(){
T1=millis();
while(button1==0){
T1=millis();
button1=digitalRead(A1);
if(T1>T2+100){
S1=!S1;
T2=T1;
digitalWrite(light,S1);
}
resister=analogRead(A0);
tone(piezo,200,100);
}
if(T1>T2+500){
S2=!S2;
button1=digitalRead(A1);
digitalWrite(light,S2);
T2=T1;}
tone(piezo,resister,100);
resister=analogRead(A0);
حل التمرين الثاني :
int LED=3,SW=7,Buzzer=4;
int D1=300,D2=600;
int x,freq;
unsigned long T1=0,T2=0,T3=0;
bool s1=0,s2=0;
int max=0,min=1023;
//-----------------------
void setup()
{
pinMode(LED,OUTPUT);
pinMode(Buzzer,OUTPUT);
pinMode(SW,INPUT_PULLUP);
delay(1000);
tone(4,200,200);
while (millis()T2+D1)
{
s1=!s1;
digitalWrite(LED,s1);
T2=T1;
}
}
else
if (T1>T3+D2)
{
s2=!s2;
digitalWrite(LED,s2);
T3=T1;
}
}
you take some mistakes bro
led should blink alternatly not direct way
Exercice 1:
byte x;
int led1=12;
int led=10;
int D=100,d=1000;
unsigned long T1=0, T2=0, t1=0;
void setup(){
pinMode(led1, OUTPUT);
pinMode(led , OUTPUT);
}
void loop(){
T1=millis();
if(T1>T2+D){
x=~x;
digitalWrite(led1,x);
T2=T1;
}
if(T1>t1+d){
x=~x;
digitalWrite(led,x);
t1=T1;
}
}
حل التمرين الثاني
اول شي توصل الضو على الارضي ومع مقاومة على منفذ 12
وتوصل السماعة مع الارضي ومنفذ 8
وتوصل الزر مع الارضي ومنفذ 7
وتوصل المقاومة المتغيرة على الارض و A0 و 5V.
وبعدين الكود
unsigned long T1=0,T2=0;
bool s=0;
void setup()
{
pinMode(12,OUTPUT);
pinMode(8,OUTPUT);
pinMode(7,INPUT_PULLUP);
}
void loop()
{
int D=3000;
T1=millis();
int c=digitalRead(7);
int x=analogRead(A0);
tone(8,x,T1);
if(c==0){
D=500;
}
if(T1>T2+D){
s=!s;
digitalWrite(12,s);
T2=T1;
}
}
اخذت مساعدة من تعليق Osama اللي تحت او فوق.
والله آني تعبان .. نأخذها والله تعبان بس عندي نشاط خلي نسوي التمرين بس آني تعبان تعبان هههههه
طيب اذا كان قيمة الميليس اكبر؟12:20
لانه في الكود حقي في حلقة وايل وايضا في ديلاي
قبلها
كيف اصفر millis بعد 3 ايام او بعد 10 ايام مثلا و اخليه يبدا من جديد
اعتقد عن طريق watch dog
ابحث عن الموضوع ، عسى ان تنفعك
@@HSRMF شكرا على ردك و بارك الله فيك و في صاحب الفيديو و الجميع
@@رجلالسلام-خ2و بالتوفيق للجميع اخي ..
نفس السوال لقيت الحل ؟؟؟
يعطيك العافية انا حليت التمرين للجزء الاول فقط بطريقة مختلفة عن يلي بالتعليقات
T1=millis();
S=0;
x=digitalRead(butoom) ;
While(T1 > (T2 - 20 *x){
S =!S;
digitalRead(LED, s) ;
T2=T1;}
صحيحة؟؟؟؟؟؟؟ 🤨
اذا كان الزر on بيطرح من الوقت ٢٠
وين الif?
وين الشرط لما ينضغط الزر يطرح من الوقت 20؟
الكود ناقص 🙃
الي يشاهد المقاطع ويعتقد الامر سهل وان فاهم لما يروح للعملي راح يلاقي حالوا صفر. حاول تشاهد درس وتروح للتنكر وتطبق وحاول تغير بالاوامر شوي لحتى تحس انك فاهم. عشان خطأ في كتابه حرف الف حول حالي
الموقع يعطيك عدد معين
لرفع الاومر الى الاردوينو
جزاك الله كل خير
زمن التشغيل ٥٠٠ مل ثانية
عرفناه بالمتغير
زمن الانتضار او الايقاف
من وين تحدد
هل من المعادلة؟
وشون اكدر ازيدة اكثر؟
مرحبا بك ___ الموضوع مقارنة بين
T1 , T2
يعني مثلا اكتب
if(T1>T2+600) { T2=T1; do anything here ..... }
مهندس سامي نشكرك كثير على الدروس .. بارك الله فيك ..
عندي سؤال اذا كان الزمن الاطفاء ما يساوي زمن الاشتغال لدايود ضوئي واحد فقط
مثلا اذا عندنا عندي LED واحد والمطلوب يكون شغال لمدة ثانية واحدة ثم يطفي لمدة نصف ثانية
وبدون استخدام امر الديلاي ؟
وسؤال عندما يستقبل الاردوينو مدخلات من حساسات متنوعة والتنفيذ يكون على هذه (المدخلات التماثلية والرقمية) ونحصل النتايج بدون تاخير ديلاي كيف !؟ كيف نطبق الmillis هنا
وممكن تحل لنا السؤال الاخير بهذا الدرس لأن بيفيدنا كثير في فهم دالة الmillis عند وجود مداخل عديدة للاردوينو !؟
وشكرا
بالنسبة للسؤال الأول ::
unsigned long T1=0 , T2=0;
bool s=0;
T1=millis();
if(T1>T2+1000 && s==0 ){T2=T1; s=1 ; digitalWrite(13,0);}
if (T1>T2+500 && s==1) { T2=T1 ; s=0 ; digitalWrite(13,1);}
السؤال الثاني غير واضح :: حسب فهمي ... فقط ضع كل قراءة حساس في متغير مختلف ، و استخدمها حسابيا في أي شيء. .... و الحقيقة انا حاليا أمنتج دروس متقدمة و يصعب أعود للدروس القديمة
www.tinkercad.com/things/gjLtZklsTXk
حاولت أحلها في الرابط السابق ____ لاحظ تشعر إن كل شيء بطيء ... السبب هو قدرة الموقع البرمجية _ لاحظ سرعة التشغيل في الأعلى . . لكن أعتقد أن الكود مكتوب صح ، و بدون تأخير _ توقف
@@jeem2academy334
في نهاية الكود هناك delay(10)
لماذا؟
@@massmedia3226 تزيد سرعة التنفيذ في موقع تينكر كاد ... غير مهمة في الاردوينو الحقيقي
ارجو ازاله الموسيقى وشكرا
for me ,in the 1st exercise, i used T1 ,2 for the led n1 and T3,4 for the n2,but it didn't work , i think there is a relationship with millis ,it 's more complicated to turn 2 millis in the same loop...,who has an idea ,or the wrong ,share it with me ,please!!
أخي العزيز لدي مشكل في كود ، برمجت الأردوينو ليدور سيرفو الموتور كل اربع ساعات و الشاشة تظهر نتيجة حساس الحرارة كل خمسين ميلي ثانية و لكن الشاشة تظهر النتيجة كل اربع ساعات أي زمن السيرفو موتور ، ما هو الحل ؟؟
هل استخدمت دالة ال delay مع السيرفو ؟
@@HSRMF نعم
@@djaminepira671 اذن سيتوقف الكود عند ال
delay
الاولى حتى تنتهي المدة ثم يكمل بقية الكود ، طبق دالة ال
mills
في كل الكود و ان شاء الله يعمل كما تريد ..
شكرا لك
لقد نجح معي الأمر و لكن لم اجد كود بالميليس لموتور سيرفو ؟؟
كتبت الكود بس مو راضي يقلب , عم يشتغلو الليدات ويبقو شغالين بدون وميض اللي يعرف فين الخطأ يعلمني (●'◡'●)
unsigned long t1=0,t2=0,f1=0,f2=0;
bool x=0,y=0;
void setup()
{
pinMode(13, OUTPUT);
pinMode(7, OUTPUT);
}
void loop()
{
t1=millis();
if( t1 > t2+500 ){
x=!x;
t1=t2;
}
f1=millis();
if( f1 > f2+200 ){
y=!y;
f1=f2;
}
digitalWrite(7,y);
digitalWrite(13,x);
}
t2=t1
f2=f1
يا شيخ انت ليش مصعبها يا شيخ في الف طريقه اسهل شكلك جاهل وقاعد تشرح
ترا هو نفسه قال بهذا المشروع مالها اي داعي هالطريقة لكنه سواها لانه مشروع سهل حتى فهمها يكون سهل لكنك شكلك همجي حافظ مو فاهم