KY-001: Skillnad mellan sidversioner

Från Stockholm Makerspace Wiki
Ingen redigeringssammanfattning
Ingen redigeringssammanfattning
 
(22 mellanliggande sidversioner av 2 användare visas inte)
Rad 1: Rad 1:
== Om sensorn ==
==Bild==
[[Fil:KY001.JPG]]
[[Fil:KY001.JPG]]
Lorem ipsum


== Koppling ==
==Om sensorn==
Lorem ipsum
TEMP 18B20 är en vanligt förekommande temperatursensor som använder [http://playground.arduino.cc/Learning/OneWire 1-wire protokollet].
Man behöver [http://arduino.cc/en/Guide/Libraries installera ett bibliotek] för att använda det, biblioteket hittar du [http://www.pjrc.com/teensy/arduino_libraries/OneWire.zip här]


==Synonymer==
KEYES Temp Module, KY001, Temperature Sensor Module, 01 ARDUINO DS18b20 sensor module


== Arduinokod ==
==Koppling==
När man kopplar in sensorn behöver man en sk. pullup på signalbussen, det funkar att sätta en 4,7kiloohms resistor mellan signal och +5v


Connect the signal to Arduino digital 10, and open serial port monitor:
==Arduino exempelkod==
När du installerat biblioteket kan du öppna exempelsketchen DS18x20_Temperature under File/Examples/OneWire/


==Bibliotek==


#include
*[[Arduino]]
*[[C]]


[[Kategori:Elektronikrummet]]
 
/* DS18S20 Temperature chip i/o
 
 
*/
 
 
OneWire ds(10); // on pin 10
 
 
void setup(void) {
 
// initialize inputs/outputs
 
// start serial port
 
Serial.begin(9600);
 
}
 
 
 
 
void loop(void) {
 
byte i;
 
byte present = 0;
 
byte data[12];
 
byte addr[8];
 
int Temp;
 
if ( !ds.search(addr)) {
 
      //Serial.print("No more addresses.n");
 
      ds.reset_search();
 
      return;
 
}
 
 
Serial.print("R="); //R=28 Not sure what this is
 
for( i = 0; i < 8; i++) {
 
  Serial.print(addr[i], HEX);
 
  Serial.print(" ");
 
}
 
 
if ( OneWire::crc8( addr, 7) != addr[7]) {
 
      Serial.print("CRC is not valid!n");
 
      return;
 
}
 
 
if ( addr[0] != 0x28) {
 
      Serial.print("Device is not a DS18S20 family device.n");
 
      return;
 
}
 
 
ds.reset();
 
ds.select(addr);
 
ds.write(0x44,1);        // start conversion, with parasite power on at the end
 
 
delay(1000);    // maybe 750ms is enough, maybe not
 
// we might do a ds.depower() here, but the reset will take care of it.
 
 
present = ds.reset();
 
ds.select(addr);
 
ds.write(0xBE);  // Read Scratchpad
 
 
Serial.print("P=");
 
Serial.print(present,HEX);
 
Serial.print(" ");
 
for ( i = 0; i < 9; i++) {        // we need 9 bytes
 
  data[i] = ds.read();
 
  Serial.print(data[i], HEX);
 
  Serial.print(" ");
 
}
 
Temp=(data[1]<<8)+data[0];//take the two bytes from the response relating to temperature
 
 
Temp=Temp>>4;//divide by 16 to get pure celcius readout
 
 
  //next line is Fahrenheit conversion
 
Temp=Temp*1.8+32; // comment this line out to get celcius
 
 
Serial.print("T=");//output the temperature to serial port
 
Serial.print(Temp);
 
  Serial.print(" ");
 
 
 
Serial.print(" CRC=");
 
Serial.print( OneWire::crc8( data, 8), HEX);
 
Serial.println();
 
}
 
 
 
== Bibliotek ==
* [[Arduino]]
* [[C]]

Nuvarande version från 30 mars 2023 kl. 21.31

Bild

Om sensorn

TEMP 18B20 är en vanligt förekommande temperatursensor som använder 1-wire protokollet. Man behöver installera ett bibliotek för att använda det, biblioteket hittar du här

Synonymer

KEYES Temp Module, KY001, Temperature Sensor Module, 01 ARDUINO DS18b20 sensor module

Koppling

När man kopplar in sensorn behöver man en sk. pullup på signalbussen, det funkar att sätta en 4,7kiloohms resistor mellan signal och +5v

Arduino exempelkod

När du installerat biblioteket kan du öppna exempelsketchen DS18x20_Temperature under File/Examples/OneWire/

Bibliotek