سلام ، این کد if(sensor_value < sensor mid رو میخوام برای فوتوسل استفاده کنم که مثلا اگه نور نبود یه led روشن بشه اما یه چیزیو متوجه نمیشم اسم سنسور رو کجا بذارم ؟ از کجا بفهمه این کد برای کدوم سنسوره ؟؟
ممنون
سلام ، این کد if(sensor_value < sensor mid رو میخوام برای فوتوسل استفاده کنم که مثلا اگه نور نبود یه led روشن بشه اما یه چیزیو متوجه نمیشم اسم سنسور رو کجا بذارم ؟ از کجا بفهمه این کد برای کدوم سنسوره ؟؟
ممنون
سلام
ببینید شما ابتدا باید mode پینی رو که فتوسلتون رو بهش متصل کردید تعیین کنید که مثلا پین A7 هست و آنالوگه. بعد میتونید مقداری رو که فتوسل برمیگردونه رو داخل یه متغیر بریزید و به جای عبارت sensor_value در شرطتون جایگذاری کنید. همچنین میتونید به جای عبارت sensor mid ، میانگین خروجی فتوسل رو قرار بدید تا معلوم بشه که اگه عدد برگشتی از مقدار میانگین کوچکتر بود یعنی نور کمی به فتوسل رسیده یا برعکس
موفق باشید
نه یه فوتوسل خالی![]()
int PHOTORESISTOR = A7
void setup
pinMode(PHOTORESISTOR, INPUT)
{
void loop
if(digitalRead(photoresistor) > LOW
{
digitalWrite(led,LOW}
else if(digitalRead(photoresistor < HIGH
{
digitalWrite(led,HIGH
}
کد های delay و انواع پرانتز هارو نذاشتم متن به هم نریزه
یعنی یه همچین چیزی ؟
چون برنامه نویسی و البته سخت افزارتون متفاوت خواهد بود
خب یه سوال دیگه اینه که من به چه پین هایی بزنم ؟ یه پین pwm و gnd خوبه یا باید analog و gnd باشه یا analog analog یا pwm pwm ؟؟؟
حل شد . analogRead هست من فکر کردم AnalogRead هست .
حل نشدکار نمی کنه
![]()
همین طور که دوستمون گفتن باید pull up کنی
و اینکه جا داره بگم که فوتوسل ها نوعی مقاومت حساس به نور هستن پس خروجیشونم آنالوگه به نوعی این جوری نیست که بهش نو بخوره خروجیش بشه 5 ولت و نور نخوره خروجیش بشه 0
برای همین در کد نویسی باید از تابع map استفاده کنی چون map در بین رنج خاصی کار میکنه
مثل این
منبع : https://learn.adafruit.com/photocells/using-a-photocell
- int photocellPin =0;// the cell and 10K pulldown are connected to a0
- int photocellReading;// the analog reading from the sensor divider
- intLEDpin=11;// connect Red LED to pin 11 (PWM pin
- intLEDbrightness;//
- void setup(void){
- // We'll send debugging information via the Serial monitor
- Serial.begin(9600);
- }
- void loop(void){
- photocellReading = analogRead(photocellPin);
- Serial.print("Analog reading = ");
- Serial.println(photocellReading);// the raw analog reading
- // LED gets brighter the darker it is at the sensor
- // that means we have to -invert- the reading from 0-1023 back to 1023-0
- photocellReading =1023- photocellReading;
- //now we have to map 0-1023 to 0-255 since thats the range analogWrite uses
- LEDbrightness= map(photocellReading,0,1023,0,255);
- analogWrite(LEDpin,LEDbrightness);
- delay(100);
- }
در ضمن از مدیریت خواستارم که پلاگین syntax Highlighter رو نصب کنن که کدهارو راحت تر بشه در انجمن گذاشت نیاز نباشه به لینک ارجاع داد
ویرایش توسط navidnkh : 08-20-2014 در ساعت 03:16 PM