dumped all my old arduino stuff in here.
This commit is contained in:
parent
8cc6f23f59
commit
8f8959b76f
76 changed files with 8127 additions and 2 deletions
113
Temp/Temp.pde
Normal file
113
Temp/Temp.pde
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
|
||||
|
||||
#include <Wire.h>
|
||||
|
||||
#define BUTTON1 2
|
||||
#define BUTTON2 3
|
||||
|
||||
// ds1621 has 0x9(b1001) A0 A1 A2
|
||||
#define DS1621_ADDR ((0x9 << 3) | 0x00)
|
||||
|
||||
// start up ds1621
|
||||
void ds1621_init()
|
||||
{
|
||||
|
||||
Serial.print(DS1621_ADDR, HEX);
|
||||
// write 0x2 to config register 0xac
|
||||
Wire.beginTransmission(DS1621_ADDR);
|
||||
Wire.send(0xac);
|
||||
Wire.send(0x02);
|
||||
Wire.endTransmission();
|
||||
delay(20);
|
||||
|
||||
// tell the ds1621 to start measuring temperature
|
||||
Wire.beginTransmission(DS1621_ADDR);
|
||||
Wire.send(0xEE);
|
||||
Wire.endTransmission();
|
||||
}
|
||||
|
||||
// read temperature
|
||||
unsigned int ds161_read_temp()
|
||||
{
|
||||
unsigned int data;
|
||||
|
||||
// tell ds1621 that we want to read register 0xaa (the temperature is in there)
|
||||
Wire.beginTransmission(DS1621_ADDR);
|
||||
Wire.send(0xaa);
|
||||
Wire.endTransmission();
|
||||
|
||||
// start reading the 2 bytes of temp data
|
||||
Wire.beginTransmission(DS1621_ADDR);
|
||||
Wire.requestFrom(DS1621_ADDR, 2);
|
||||
if(Wire.available())
|
||||
data = Wire.receive() << 8;
|
||||
if(Wire.available())
|
||||
data |= Wire.receive();
|
||||
return data;
|
||||
}
|
||||
|
||||
// format and output the temperature read from a ds1621
|
||||
void ds1621_print_temp(int temp)
|
||||
{
|
||||
if(temp & 0x8000)
|
||||
Serial.print("-");
|
||||
else
|
||||
Serial.print("");
|
||||
temp &= 0x7fff;
|
||||
Serial.print(temp >> 8);
|
||||
if(temp & 0xff)
|
||||
Serial.print(",5");
|
||||
else
|
||||
Serial.print(",0");
|
||||
Serial.print("\n");
|
||||
delay(1000);
|
||||
}
|
||||
int a = 0;
|
||||
// this function is called everytime button1 is pressed
|
||||
void button1_isr(void)
|
||||
{
|
||||
// Serial.print("button1\n");
|
||||
a= 1;
|
||||
}
|
||||
|
||||
// this function is called everytime button2 is pressed
|
||||
void button2_isr(void)
|
||||
{
|
||||
//Serial.print("button2\n");
|
||||
a=2;
|
||||
}
|
||||
|
||||
void setup()
|
||||
{
|
||||
|
||||
pinMode(13, OUTPUT); //we'll use the debug LED to output a heartbeat
|
||||
|
||||
// start serial
|
||||
Serial.begin(9600);
|
||||
|
||||
// start i2c
|
||||
Wire.begin();
|
||||
|
||||
// start thermometer
|
||||
ds1621_init();
|
||||
|
||||
// setup button gpio
|
||||
// gpio is input and internal pullup enabled
|
||||
pinMode(BUTTON1, INPUT);
|
||||
pinMode(BUTTON2, INPUT);
|
||||
digitalWrite(BUTTON1, HIGH);
|
||||
digitalWrite(BUTTON2, HIGH);
|
||||
|
||||
// give both buttons an interrupt handler
|
||||
attachInterrupt(0, button1_isr, FALLING);
|
||||
attachInterrupt(1, button2_isr, FALLING);
|
||||
interrupts();
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
|
||||
int temp = ds161_read_temp();
|
||||
ds1621_print_temp(temp);
|
||||
delay(1000);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue