• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Siema
#1
Programuję PLC w językach graficznych LAD, FBD, i te inne... W ostatnim czasie zakupiłem sobie Uno, coś poczytałem, nawet puściłem program do kości. I prawie działa...  Podpiąłem DHT11 i w zależności od temperatur regulował mi wypełnienie PWM i było ok. Ale żeby zabawka działała jak potrzebuję, to potrzebuję przełożyć z DHT temperaturę na częstotliwość. Napisałem taki prosty programik, tylko na pół sekundy jakby przerywał obwiednię; działa około 1,5 sekundy a potem staje, na 0,5 sek. Ma ktoś pomysł dlaczego?

Kod:
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);              
int pwm = 9;

void setup()
{
dht.begin();
 pinMode(pwm, OUTPUT);
}

void loop()
{
float t = dht.readTemperature();
    delay(500/t);
     digitalWrite(pwm,  HIGH);
     delay(500/t);
     digitalWrite(pwm,  LOW);
   
}
 
Odpowiedź
#2
Witam
Kod:
float t = dht.readTemperature();
   delay(500/t);
    digitalWrite(pwm,  HIGH);
    delay(500/t);
    digitalWrite(pwm,  LOW);
 
}
No jak jest kod... to zaraz inaczej się patrzy na problem i człowieka :-)
Panie kolego.... piny PWM w procesorze służą do zadawania wartości w przedziale 0-255 (niektóre inne procki ze stajni atmela mają także 10 bitowe - czyli od 0-1024).
Jak na razie Twój fragment kodu zadaje tylko inne czasy przerwy dla funkcji delay(). Aby zmieniać wartości PWM musisz użyć analogWrite(pwm, t); To delay sobie wyrzuć. Nie mam pojęcia jak chcesz tym grać zmieniając temperaturę, bo ona nie będzie się aż tak bardzo przecież zmieniać :-) No chyba, że chcesz przypalać swoją zabawkę papierosem i obserwować jak cienko piszczy :-)
Może warto by poczytać o funkcji map(.....).
Odsyłam do źródeł : https://www.arduino.cc/en/Reference/HomePage
Kurcze wszystkiego nie możemy robić :-)
Pozdrawiam
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości