امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 3
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل رطوبت سنج
نویسنده پیام
PRO غایب
كاربر دو ستاره
**

ارسال‌ها: 92
موضوع‌ها: 1
تاریخ عضویت: خرداد ۱۳۹۱

تشکرها : 1061
( 400 تشکر در 136 ارسال )
ارسال: #1
Question  مشکل رطوبت سنج
دوستان من با یه سنسور رطوبت سنج یه مدار درست کردم.
با دو تا ترانزیستور تقویتش کردم و وقتی رطوبت زیاد میشه ، نور یه ال ای دی افزایش پیدا می کنه.
حالا تونستم یه کاریش کنم که به ورودی صفر ADC مگا هشت وصلش کنم و میکرو با افزایش رطوبت 5 تا ال ای ادی رو روشن می کنه(وقتی رطوبت کمه یه ال ای دی و وقتی زیاد میشه ، دو و سه و چهار و در نهایت 5 تا ال ای دی روشن میشه)
حالا یه کاریش کردم که 10 تا ال ای دی را روشن کنه . ولی ال ای دی ها هی روشن خاموش می شه. و اصلا نظمی نداره(مشکل نویزه؟)
اینم کد برنامه میکرو:
کد php:
#include <mega8.h>

#include <delay.h>

#define ADC_VREF_TYPE 0x60

// Read the 8 most significant bits
// of the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA 0x10)==0);
ADCSRA|=0x10;
return 
ADCH;
}

// Declare your global variables here

void main(void)
{
// Declare your local variables here
float volt ;
// Input/Output Ports initialization


// Port D initialization
// Func7=In Func6=In Func5=In Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out 
// State7=T State6=T State5=T State4=0 State3=0 State2=0 State1=0 State0=0 
PORTD=0;
DDRD=0xFF;
DDRB=(1<<DDB7)|(1<<DDB6);
PORTB=0;
// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AVCC pin
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE 0xff;
ADCSRA=0x83;
while (
1)
      {
     
volt=read_adc(0);
     
volt=volt*5/256;
          if(
volt<=0.1)               { PORTD=0;PORTB.6=0;PORTB.7=0;}
     else if(
volt<=0.5 && volt >0.1)  { PORTD=0b1;PORTB.6=0;PORTB.7=0;}
     else if(
volt<=&& volt >0.5)    { PORTD=0b11;PORTB.6=0;PORTB.7=0;}
     else if(
volt<=1.5 && volt >1)    { PORTD=0b111;PORTB.6=0;PORTB.7=0;}
     else if(
volt<=&& volt >1.5)    { PORTD=0b1111;PORTB.6=0;PORTB.7=0;}
     else if(
volt<=2.5 && volt >2)    { PORTD=0b11111;PORTB.6=0;PORTB.7=0;}
     else if(
volt<=&& volt >2.5)    { PORTD=0b11111;PORTB.6=1;PORTB.7=0;}
     else if(
volt<=3.5 && volt >3)    { PORTD=0b11111;PORTB.6=1;PORTB.7=1;}
     else if(
volt<=&& volt >3.5)    { PORTD=0b111111;PORTB.6=1;PORTB.7=1;}
     else if(
volt<=4.5 && volt >4)    { PORTD=0b1111111;PORTB.6=1;PORTB.7=1;}
     else if(
volt >4.5)               { PORTD=0b11111111;PORTB.6=1;PORTB.7=1;} 
     
delay_ms(10);
      }

چرا ال ای دی ها هی روشن خاموش میشه؟؟؟؟؟
چرا برای 5 تا ال ای دی مشکلی نبود؟
توضیح : در مدار با 5 تا LED ، کاری کرده بودم که با افزایش هر یک ولت در ADC ، یه LED روشن بشه و در این پروژه با 10 تا LED به ازای افزایش هر 0.5 ولت یه LED روشن میشه .
ولی پروژه دومی اصلا خوب جواب نمی ده و LED ها هی روشن خاموش میشه.
اینم شکل مدار:
(جالبه که توی پروتئوس با 10 تا led راحت کار می کنه)
   

غریق دریای تکنولوژی  :lol:
(آخرین ویرایش در این ارسال: ۱۴-شهریور-۱۳۹۲, ۱۶:۰۶:۵۵، توسط PRO.)
۱۴-شهریور-۱۳۹۲, ۱۶:۰۶:۰۶
ارسال‌ها
پاسخ
تشکر شده توسط : Ambassador


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  درخواست راهنمایی درباره دماسنج و رطوبت سنج fedagh 2 3,195 ۰۳-دى-۱۳۹۵, ۰۱:۲۵:۰۷
آخرین ارسال: omid_phoenix
  [فوری] درخواست برنامه دماسنج و رطوبت سنج با dht11 ahmad70roostaii 0 1,976 ۰۱-خرداد-۱۳۹۳, ۱۶:۵۱:۳۲
آخرین ارسال: ahmad70roostaii
  معرفی سنسورهای رطوبت علیدلی 18 12,820 ۰۶-تير-۱۳۹۲, ۱۲:۳۱:۳۹
آخرین ارسال: علیدلی
  رطوبت سنج ghafari 16 16,531 ۱۳-اردیبهشت-۱۳۸۹, ۲۲:۳۲:۴۸
آخرین ارسال: t3r!p3000
  سوال درباره رطوبت سنج assassin_0121 12 9,872 ۱۷-شهریور-۱۳۸۸, ۲۳:۲۶:۳۸
آخرین ارسال: t3r!p3000

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS