ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 6 از 6
  1. #1
    2018/06/03
    61
    8

    ایا میشه خروجی سنسور dht22 از نوع float هست رو ...

    سلام به دوستان
    ایا راهی هست خروجی سنسور dht22 از نوع float هست رو به char تغییر داد .
    دو نوع کد دارم من که هرکدوم به روشی از سنسور مربوط خروجی میگیرند
    کد اول :
    char temperature[] = " 00.00";
    char temperature_msb;
    if(temperature_msb < 0){
    temperature_msb = abs(temperature_msb);
    temperature[0] = '-';
    }
    else
    temperature[0] = ' ';
    temperature_lsb >>= 6;
    temperature[2] = temperature_msb % 10 + 48;
    temperature[1] = temperature_msb / 10 + 48;
    if(temperature_lsb == 0 || temperature_lsb == 2){
    temperature[5] = '0';
    if(temperature_lsb == 0) temperature[4] = '0';
    else temperature[4] = '5';
    }
    if(temperature_lsb == 1 || temperature_lsb == 3){
    temperature[5] = '5';
    if(temperature_lsb == 1) temperature[4] = '2';
    else temperature[4] = '7';
    }
    // Temperature (Celcius)

    و کد دوم
    //include library
    #include "DHT.h"
    //Define the input pin (pin #2)
    #define I_DHT22 19
    //Define the sensor type (here DHT22)
    #define DHTTYPE DHT22
    //Object declaration
    DHT dht(I_DHT22, DHTTYPE);

    void setup() {
    //Serial port communication
    Serial.begin(9600);
    Serial.println("DHT22 - Test");
    //Initialization
    dht.begin();
    }

    void loop() {
    //2 seconds delay between measurements
    delay(2000);

    //Temperature (Celcius)
    float temperature = dht.readTemperature();
    if (isnan(temperature)) {
    Serial.println("Failed to read temperature from DHT sensor.");
    }
    else {
    Serial.print("Temperature: ");
    Serial.print(temperature);
    Serial.print(" *C\r\n");
    }

    //Humidity
    float humidity = dht.readHumidity();
    if (isnan(humidity)) {
    Serial.println("Failed to read humidity from DHT sensor.");
    }
    else {
    Serial.print("Humidity: ");
    Serial.print(humidity);
    Serial.print(" %\r\n");
    }

    //Heat index
    if (isnan(temperature) || isnan(humidity)) {
    Serial.println("Unable to compute heat index (missing parameters).");
    }
    else {
    float heatIndex = dht.computeHeatIndex(temperature, humidity, false);
    if (isnan(heatIndex)) {
    Serial.println("Failed to compute heat index.");
    }
    else {
    Serial.print("Heat index: ");
    Serial.print(heatIndex);
    Serial.print(" *C\r\n");
    }
    }
    }

    در کل کد ها زمین تا اسمون با هم فرق دارن
    ایا راهی هست بشه خروجی ها به char تبدیل کرد ؟؟؟
  2. #2
    2014/12/10
    34
    7

    پاسخ : ایا میشه خروجی سنسور dht22 از نوع float هست رو ...

    با سلام .
    منظورت اینه که عدد فلوت به رشته قابل چاپ روی lcd تبدیل بشه?
    به زبان C باید باشه ؟ این کد ظاهرا به زبان C هست.
    ویرایش توسط hossein_10 : 2018/11/09 در ساعت 22:32
  3. #3
    2018/02/22
    1,096
    740

    پاسخ : ایا میشه خروجی سنسور dht22 از نوع float هست رو ...

    درود . کد دوم که برای آردو هست ، هدف شما از تبدیل به char چیه ?
  4. #4
    2018/06/03
    61
    8

    پاسخ : ایا میشه خروجی سنسور dht22 از نوع float هست رو ...

    سلام
    اره برای نمایشش توی نمایشگر چون خطا کانورت میگیره ؟
  5. #5
    2014/12/10
    34
    7

    پاسخ : ایا میشه خروجی سنسور dht22 از نوع float هست رو ...

    نقل قول نوشته اصلی توسط systam

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام
    اره برای نمایشش توی نمایشگر چون خطا کانورت میگیره ؟
    با سلام . من برای زبان c بلدم . و با کدویژن اینکار رو انجام دادم .
    اول هدر stdio.h رو باید اینکلود بکنی .توی کد ویژن اینطوریه

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    <stdio.h>
    بعد یه آررایه تعریف میکنی به این صورت char lcd_Buf[n] که این n در واقع بایدحداقل 1 عدد از طول رشته ای که میخوای چاپ کنی بیشتر باشه مثلا اگر طول رشته 20 میشه
    شما باید طول آرایه رو حداقل n=21 انتخاب کنی .

    حالا با sprintf( lcd_buf , " mytext %5.2f %5.2f " , arg1 , arg2 ) این تابع میتونی اعداد اعشاری رو به رشته تبدیل کنی هرچی توی رشته بنویسی مثلا mytext به همراه اعداد اعشاری با فرمتی که خودت تععیین میکنی مثل 5.2f% ; کلا به یک رشته تبدیل میشه و توی lcd buf قرار میگیره و فقط دقت کن طول رشته با احتساب فاصله ها از طول lcd_buf بیشتر نشه . %5.2f هم به این معنیه که عددی که میخوای چاپ بشه به صورت 5 کاراکتر با احتساب نقطه اعشار و دورقم بعد از اعشار چاپ میشه و arg1 , arg2 اعدادی هستن که باید چاپ بشن .....حتما هم نباید 2 تا باشن میتونی تعداد بیشتری بنویسی ولی باید توی رشته فرمتشون رو مشخص کنی .
    بعد بایدآخر رشته رو ببندی برای اینکار لازمه اگه اگر مثلا طول رشته 16کاراکتر شد توی بدنه اصلی برنامه ' lcd_buf[16]= '\0 . البته توی بعضینسخه ها همون تابع sprintf اینکارو میکنه و لی توی بعضیها هم نه . شما دفعه اول احتیاطا اینکارو بکنن.

    بعدش دیگه راحته ، کافیه رشته رو روی lcd نمایش بدی .
    ویرایش توسط hossein_10 : 2018/11/16 در ساعت 12:23
  6. #6
    2018/02/22
    1,096
    740

    پاسخ : ایا میشه خروجی سنسور dht22 از نوع float هست رو ...

    من متوجه مشکل نمیشم ، مگه آردو عدد دما و رطوبت بدست آمده از سنسور dht رو روی lcd نشون نمیده ؟ لزوم تبدیل به کاراکتر چیه ؟ چه نوع lcd ?
نمایش نتایج: از 1 به 6 از 6

موضوعات مشابه

  1. راه اندازی سنسور رطوبت dht22
    توسط hamedspartacus در انجمن میکروکنترلرهای AVR
    پاسخ: 5
    آخرين نوشته: 2021/03/04, 16:45
  2. [آموزشی] آشنایی با سنسور های DHT22 و DHT11 و بررسی تفاوت برنامه نویسی
    توسط سید رضا باباتبار در انجمن مدار هاي ديجيتال
    پاسخ: 3
    آخرين نوشته: 2020/10/01, 02:15
  3. راه اندازی dht22 سنسور رطوبت
    توسط ry.mohammad در انجمن میکروکنترلرهای AVR
    پاسخ: 19
    آخرين نوشته: 2017/10/17, 00:47
  4. سنسور رطوبت و دما DHT11,DHT22
    توسط alimohammad_sh در انجمن سایر مطالب مرتبط با ميکرو ها و پروسسورها
    پاسخ: 2
    آخرين نوشته: 2017/04/15, 14:13
  5. نبودن سنسور DHT22 در کتابخانه پرتئوس
    توسط SINASET در انجمن نرم افزار Proteus
    پاسخ: 0
    آخرين نوشته: 2015/06/07, 16:38

کاربرانی که این تاپیک را مشاهده کرده اند: 0

هیچ عضوی در لیست وجود ندارد.

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •