GY-63_MS5611/libraries/ADT7470/examples/adt7470_demo/adt7470_demo.ino
2021-01-29 12:31:58 +01:00

223 lines
4.0 KiB
C++

//
// FILE: adt7470_demo.ino
// AUTHOR: Rob Tillaart
// VERSION: 0.1.1
// PURPOSE: demo ADT7470 library
// DATE: 2015-12-02
#include <Wire.h>
#include "ADT7470.h"
ADT7470 ADT(ADT7470_ADDR_FLOAT);
void setup()
{
Wire.begin();
Serial.begin(115200);
Serial.print(F("\n\nStart "));
Serial.println(__FILE__);
Serial.println();
if (!ADT.isConnected())
{
Serial.println("Cannot connect ADT7470...\n");
// while(1);
}
// else
{
testStart();
testRevision();
testTemp();
testPWM();
testTach();
testFanSpeed();
testStop();
}
Serial.println("Done");
}
void testStart()
{
Serial.println(F("ADT7470 testStart"));
ADT.powerUp();
ADT.startMonitoring();
Serial.println();
Serial.println();
delay(1000);
}
void testRevision()
{
Serial.print("ADT7470_LIB_VERSION:\t");
Serial.println(ADT7470_LIB_VERSION);
Serial.print("ADT7470 getRevision:\t");
Serial.println(ADT.getRevision());
Serial.print("ADT7470 getDeviceID:\t");
Serial.println(ADT.getDeviceID());
Serial.print("ADT7470 getCompanyID:\t");
Serial.println(ADT.getCompanyID());
Serial.println();
Serial.println();
delay(10);
}
void testTemp()
{
Serial.println(F("ADT7470 testTemp 0..9"));
Serial.print("temp:");
for (uint8_t i = 0; i < 10; i++)
{
Serial.print("\t");
Serial.print(ADT.getTemperature(i));
}
Serial.println();
Serial.print("max:\t");
Serial.println(ADT.getMaxTemperature());
Serial.println();
Serial.println();
delay(10);
}
void testPWM()
{
Serial.println(F("ADT7470 getPWM 0..3"));
Serial.print(F("set:"));
for (int i = 0; i < 4; i++)
{
uint8_t pwm = random(255);
ADT.setPWM(i, pwm);
Serial.print("\t");
Serial.print(pwm);
}
Serial.println();
Serial.print(F("get:"));
for (int i = 0; i < 4; i++)
{
uint8_t pwm = ADT.getPWM(i);
Serial.print("\t");
Serial.print(pwm);
}
Serial.println();
Serial.println();
delay(10);
}
void testTach()
{
uint8_t ppr[4];
Serial.println(F("ADT7470 testTach 0..3"));
Serial.print(F("getPPR: "));
for (uint8_t i = 0; i < 4; i++)
{
ppr[i] = ADT.getPulsesPerRevolution(i);
Serial.print("\t");
Serial.print(ppr[i]);
}
Serial.println();
Serial.print(F("setPPR: "));
for (uint8_t i = 0; i < 4; i++)
{
ADT.setPulsesPerRevolution(i, ppr[i]);
bool b = (ppr[i] == ADT.getPulsesPerRevolution(i));
Serial.print("\t");
Serial.print(b ? "T" : "F"); // expect TTTT
}
Serial.println();
ADT.setSlowTach();
Serial.println(F("setSlowTach"));
Serial.print(F("getTach:"));
for (uint8_t i = 0; i < 4; i++)
{
uint16_t tach = ADT.getTach(i);
Serial.print("\t");
Serial.print(tach);
}
Serial.println();
Serial.print(F("getRPM :"));
for (int i = 0; i < 4; i++)
{
uint32_t rpm = ADT.getRPM(i);
Serial.print("\t");
Serial.print(rpm);
}
Serial.println();
ADT.setFastTach();
Serial.println(F("setFastTach"));
Serial.print(F("getTach:"));
for (uint8_t i = 0; i < 4; i++)
{
uint16_t tach = ADT.getTach(i);
Serial.print("\t");
Serial.print(tach);
}
Serial.println();
Serial.print(F("getRPM :"));
for (int i = 0; i < 4; i++)
{
uint32_t rpm = ADT.getRPM(i);
Serial.print("\t");
Serial.print(rpm);
}
Serial.println();
Serial.println();
delay(10);
}
void testFanSpeed()
{
Serial.println(F("ADT7470 testFanSpeed"));
Serial.print("low:\t");
for (uint8_t i = 0; i < 8; i++)
{
ADT.setFanLowFreq(i);
Serial.print(i);
Serial.print("\t");
delay(1000);
}
Serial.println();
Serial.print("high:\t");
for (uint8_t i = 0; i < 8; i++)
{
ADT.setFanHighFreq(i);
Serial.print(i);
Serial.print("\t");
delay(1000);
}
Serial.println();
ADT.setFanHighFreq(2);
Serial.println();
Serial.println();
delay(10);
}
void testStop()
{
Serial.println(F("ADT7470 testStop"));
ADT.stopMonitoring();
ADT.powerDown();
delay(2000);
// TODO how to check if it is down - datasheet.
}
void loop()
{
}
// -- END OF FILE --