http://arduino.cz/termostat-s-raspberry-pi/
Dobrý den, tento projekt, uvedený na stránkách Arduina použivá hardware programovaný v prostředí Pythonu... je nějaká možnost konverze pro použití v prostředí Arduino Nano?
Fórum › Python
Převod programu v Pythonu do prostředí Arduina
#2 KIIV
Dobře, a jak funguje tento program?
/*
Temperature Sensor
Reads an Analog Devices TMP36GT9Z-ND or AD22100 temperature sensor on analog pin 0
and converts the voltage value to temperature.
Connect Pin 1 to 5 V.
Connect Pin 2 to A0.
Connect Pin 3 to Gnd.
*/
//#if defined(ARDUINO) && ARDUINO >= 100
// #include "Arduino.h"
// #else
// #include "WProgram.h"
// #endif
int TsensorPin = A0; // select the input pin for the sensor
int ledPin = 13; // select the pin for the LED
int wait = 500; // 1/2 wait time between measurements
double temperature = 0.0;
void setup() {
// declare the ledPin as an OUTPUT:
pinMode(TsensorPin, INPUT); // and set pins to input.
pinMode(ledPin, OUTPUT); // Set Temperature Sensor Pin
Serial.begin (115200); // Set up the Serial Connection.
Serial.println("Reading the Temperature Sensor"); // Greet user.
}
void loop() {
temperature = TMP36GT_AI_value_to_Celsius(analogRead(TsensorPin)); // read temperature
// temperature = AD22100K_AI_value_to_Celsius(analogRead(TsensorPin)); // read temperature
Serial.print("Temperature read (C): ");
Serial.println(temperature,2); // write temperature to Serial
digitalWrite(ledPin, HIGH); // turn the ledPin on
delay(wait); // stop the program for <wait> milliseconds:
digitalWrite(ledPin, LOW); // turn the ledPin off:
delay(wait); // stop the program for for <wait> milliseconds:
}
double TMP36GT_AI_value_to_Celsius(int AI_value)
{ // Convert Analog-input value to temperature
float voltage;
voltage = AI_value * (5000.0/1024); // Sensor value in mV:
return ((voltage -750) /10) +25; // Temperature according to datasheet: 750 mV = 25 °C
// 10 mV / °C
}
double AD22100K_AI_value_to_Celsius(int AI_value)
{ // Convert Analog-input value to temperature
float voltage;
voltage = AI_value * (5000.0/1024); // Sensor value in mV:
return (voltage -1375) /22.5; // Temperature according to datasheet: 1.375 V <-> 0 °C
// 22.5 mV / °C; Ratiometric measurement, conversion valid for 5 V!
}
Našel sem ho na webu, a použiju ho jako šablonu, ale nevím, co za teploty to snímá a jak to s nimi pracuje? Najdu tu číselnou hodnotu "nějaký" teploty, ale už z toho nevím, co to vlastně dělá... při jaký teplotě to spustí dohřev, a při jaký ho to přeruší?
Temperature Sensor
Reads an Analog Devices TMP36GT9Z-ND or AD22100 temperature sensor on analog pin 0
and converts the voltage value to temperature.
je to hned pod tvoji otazkou jak to funguje
Rezim termostatu tam nevidim, jen to prevadi a posila na seriovej port
#5 Ladislav Šafránek
ne nutne, muze to byt jen ukazka, jak se nacita a prevadi hodnota z jednoho nebo druheho konkretniho senzoru a posle se to do pocitace k zobrazeni (treba v arduino serial monitoru) - jelikoz pridavat jeste display by zeslozitilo jednoduchou ukazku
Treba tady je neco, co uz aspon termostat je: http://www.instructables.com/id/Arduino-LCD-Thermostat/
nebo tenhle vypada na prvni pohled trochu lip: http://www.instructables.com/id/Arduino-Thermostat-with-2x-DS18b20-i2c-4x16-Displa/
Promiň, že tu to řeším takto, ale toto je "domácí úkol" se kterým se musím poprat, aby mě můj kamarád vůbec začal učit, a já prostě usnul na mrtvém bodě... nejlíp se učím z hotového programu, ze kterého si odvodím funkci, a ne z X často protichůdných zdrojů.
no zacina se obvykle tak, ze mas k dispozici nejaky teplomer, nejaky display, nejaky arduino, nejaky tlacitka, nejaky pozadavky, co to ma umet
1. rozjedes arduino "ide", rozjedes example na rozblikani ledky a zvladnes nahrat do arduina
2. rozjedes kazdou cast zvlast - abys nacetl teplomer a poslal hodnotu do pocitace (abys nemusel jeste resit display)
3. samostatne rozjedes display
4. vemes 2+3 a nactenou teplotu zobrazis na display
....
|Displej nemám, bohatě by mi stačil program pro Arduino, co by fungoval jako automatický termostat... prostě tak, že by autonomně, bez dalšího HW a bez zobrazení na displeji reguloval teplotu... ať už ovládáním kohoutku u topení, anebo řízením termostatu.
Co tam ten autor mého příkladu vtěsnal tu letku? Jen pro kontrolu správné činnosti programu?
Myslím toto: pinMode(ledPin, OUTPUT); // Set Temperature Sensor Pin
proč ledka je brána jako snímač teploty?
Jo, za dvojicí lomítek je to komentář, ale tato část textu "pinMode(ledPin, OUTPUT" se stane součástí programu.
pridam jeste bod 0. http://arduino.cc/…nce/HomePage
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Převod syntaxe z pythonu do assembleru — založil xkadan
Spuštění jiného programu přímo z Pythonu — založil Mirek
Převod programu na algoritmus — založil jura88
Výstup v programu pro převod mezi soustavami — založil Mordor
Programovanie Arduina, ESP8266, ESP32 a webov — založil Martin
Moderátoři diskuze