-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
update adc module ,add ads7830.
- Loading branch information
Suhayl
committed
Mar 11, 2020
1 parent
01075b8
commit a2ac6a4
Showing
45 changed files
with
1,397 additions
and
801 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
/********************************************************************** | ||
* Filename : ADC.cpp | ||
* Description : Use ADC module to read the voltage value of potentiometer. | ||
* Author : www.freenove.com | ||
* modification: 2020/03/06 | ||
**********************************************************************/ | ||
#include <wiringPi.h> | ||
#include <stdio.h> | ||
#include <ADCDevice.hpp> | ||
|
||
ADCDevice *adc; // Define an ADC Device class object | ||
|
||
int main(void){ | ||
adc = new ADCDevice(); | ||
printf("Program is starting ... \n"); | ||
|
||
if(adc->detectI2C(0x48)){ // Detect the pcf8591. | ||
delete adc; // Free previously pointed memory | ||
adc = new PCF8591(); // If detected, create an instance of PCF8591. | ||
} | ||
else if(adc->detectI2C(0x4b)){// Detect the ads7830 | ||
delete adc; // Free previously pointed memory | ||
adc = new ADS7830(); // If detected, create an instance of ADS7830. | ||
} | ||
else{ | ||
printf("No correct I2C address found, \n" | ||
"Please use command 'i2cdetect -y 1' to check the I2C address! \n" | ||
"Program Exit. \n"); | ||
return -1; | ||
} | ||
|
||
while(1){ | ||
int adcValue = adc->analogRead(0); //read analog value of A0 pin | ||
float voltage = (float)adcValue / 255.0 * 3.3; // Calculate voltage | ||
printf("ADC value : %d ,\tVoltage : %.2fV\n",adcValue,voltage); | ||
delay(100); | ||
} | ||
return 0; | ||
} |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
/********************************************************************** | ||
* Filename : Softlight.cpp | ||
* Description : Use potentiometer to control LED | ||
* Author : www.freenove.com | ||
* modification: 2020/03/07 | ||
**********************************************************************/ | ||
#include <wiringPi.h> | ||
#include <stdio.h> | ||
#include <softPwm.h> | ||
#include <ADCDevice.hpp> | ||
|
||
#define ledPin 0 | ||
|
||
ADCDevice *adc; // Define an ADC Device class object | ||
|
||
int main(void){ | ||
adc = new ADCDevice(); | ||
printf("Program is starting ... \n"); | ||
|
||
if(adc->detectI2C(0x48)){ // Detect the pcf8591. | ||
delete adc; // Free previously pointed memory | ||
adc = new PCF8591(); // If detected, create an instance of PCF8591. | ||
} | ||
else if(adc->detectI2C(0x4b)){// Detect the ads7830 | ||
delete adc; // Free previously pointed memory | ||
adc = new ADS7830(); // If detected, create an instance of ADS7830. | ||
} | ||
else{ | ||
printf("No correct I2C address found, \n" | ||
"Please use command 'i2cdetect -y 1' to check the I2C address! \n" | ||
"Program Exit. \n"); | ||
return -1; | ||
} | ||
wiringPiSetup(); | ||
softPwmCreate(ledPin,0,100); | ||
while(1){ | ||
int adcValue = adc->analogRead(0); //read analog value of A0 pin | ||
softPwmWrite(ledPin,adcValue*100/255); // Mapping to PWM duty cycle | ||
float voltage = (float)adcValue / 255.0 * 3.3; // Calculate voltage | ||
printf("ADC value : %d ,\tVoltage : %.2fV\n",adcValue,voltage); | ||
delay(30); | ||
} | ||
return 0; | ||
} |
46 changes: 26 additions & 20 deletions
46
...1.1_ColorfulSoftlight/ColorfulSoftlight.c → ...1_ColorfulSoftlight/ColorfulSoftlight.cpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
/********************************************************************** | ||
* Filename : Nightlamp.cpp | ||
* Description : Photoresistor control LED | ||
* Author : www.freenove.com | ||
* modification: 2020/03/09 | ||
**********************************************************************/ | ||
#include <wiringPi.h> | ||
#include <stdio.h> | ||
#include <softPwm.h> | ||
#include <ADCDevice.hpp> | ||
|
||
#define ledPin 0 | ||
|
||
ADCDevice *adc; // Define an ADC Device class object | ||
|
||
int main(void){ | ||
adc = new ADCDevice(); | ||
printf("Program is starting ... \n"); | ||
|
||
if(adc->detectI2C(0x48)){ // Detect the pcf8591. | ||
delete adc; // Free previously pointed memory | ||
adc = new PCF8591(); // If detected, create an instance of PCF8591. | ||
} | ||
else if(adc->detectI2C(0x4b)){// Detect the ads7830 | ||
delete adc; // Free previously pointed memory | ||
adc = new ADS7830(); // If detected, create an instance of ADS7830. | ||
} | ||
else{ | ||
printf("No correct I2C address found, \n" | ||
"Please use command 'i2cdetect -y 1' to check the I2C address! \n" | ||
"Program Exit. \n"); | ||
return -1; | ||
} | ||
wiringPiSetup(); | ||
softPwmCreate(ledPin,0,100); | ||
while(1){ | ||
int value = adc->analogRead(0); //read analog value of A0 pin | ||
softPwmWrite(ledPin,value*100/255); | ||
float voltage = (float)value / 255.0 * 3.3; // calculate voltage | ||
printf("ADC value : %d ,\tVoltage : %.2fV\n",value,voltage); | ||
delay(100); | ||
} | ||
return 0; | ||
} |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
/********************************************************************** | ||
* Filename : Thermometer.cpp | ||
* Description : DIY Thermometer | ||
* Author : www.freenove.com | ||
* modification: 2020/03/09 | ||
**********************************************************************/ | ||
#include <wiringPi.h> | ||
#include <stdio.h> | ||
#include <math.h> | ||
#include <ADCDevice.hpp> | ||
|
||
ADCDevice *adc; // Define an ADC Device class object | ||
|
||
int main(void){ | ||
adc = new ADCDevice(); | ||
printf("Program is starting ... \n"); | ||
|
||
if(adc->detectI2C(0x48)){ // Detect the pcf8591. | ||
delete adc; // Free previously pointed memory | ||
adc = new PCF8591(); // If detected, create an instance of PCF8591. | ||
} | ||
else if(adc->detectI2C(0x4b)){// Detect the ads7830 | ||
delete adc; // Free previously pointed memory | ||
adc = new ADS7830(); // If detected, create an instance of ADS7830. | ||
} | ||
else{ | ||
printf("No correct I2C address found, \n" | ||
"Please use command 'i2cdetect -y 1' to check the I2C address! \n" | ||
"Program Exit. \n"); | ||
return -1; | ||
} | ||
printf("Program is starting ... \n"); | ||
while(1){ | ||
int adcValue = adc->analogRead(0); //read analog value A0 pin | ||
float voltage = (float)adcValue / 255.0 * 3.3; // calculate voltage | ||
float Rt = 10 * voltage / (3.3 - voltage); //calculate resistance value of thermistor | ||
float tempK = 1/(1/(273.15 + 25) + log(Rt/10)/3950.0); //calculate temperature (Kelvin) | ||
float tempC = tempK -273.15; //calculate temperature (Celsius) | ||
printf("ADC value : %d ,\tVoltage : %.2fV, \tTemperature : %.2fC\n",adcValue,voltage,tempC); | ||
delay(100); | ||
} | ||
return 0; | ||
} |
Oops, something went wrong.