You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
3.2 KiB
106 lines
3.2 KiB
/*
|
|
Blink
|
|
Turns on an LED on for one second, then off for one second, repeatedly.
|
|
Most Arduinos have an on-board LED you can control. On the Uno and
|
|
Leonardo, it is attached to digital pin 13. If you're unsure what
|
|
pin the on-board LED is connected to on your Arduino model, check
|
|
the documentation at http://arduino.cc
|
|
This example code is in the public domain.
|
|
modified 8 May 2014
|
|
by Scott Fitzgerald
|
|
|
|
Modified by Roger Clark. www.rogerclark.net for Maple mini 25th April 2015 , where the LED is on PC13
|
|
|
|
Added CubeSatSim Payload tests for STM32 and Pro Micro by Alan Johnston, KU2Y
|
|
|
|
*/
|
|
|
|
int sensorValue = 0;
|
|
int greenLED = 9;
|
|
int blueLED = 8;
|
|
// Calibration data for diode temperature sensor
|
|
float T1 = 25; // Temperature data point 1
|
|
float R1 = 373; // Reading data point 1
|
|
float T2 = 17; // Temperature data point 2
|
|
float R2 = 405; // Reading data point 2
|
|
|
|
// the setup function runs once when you press reset or power the board
|
|
void setup() {
|
|
|
|
#if defined(ARDUINO_ARCH_STM32F0) || defined(ARDUINO_ARCH_STM32F1) || defined(ARDUINO_ARCH_STM32F3) || defined(ARDUINO_ARCH_STM32F4) || defined(ARDUINO_ARCH_STM32L4)
|
|
// initialize digital pin PB1 as an output.
|
|
pinMode(PB9, OUTPUT);
|
|
pinMode(PB8, OUTPUT);
|
|
pinMode(PA0, INPUT_ANALOG);
|
|
pinMode(PA1, INPUT_ANALOG);
|
|
pinMode(PA2, INPUT_ANALOG);
|
|
|
|
T2 = 25; // Temperature data point 1
|
|
R2 = 2111; // Reading data point 1
|
|
T1 = 23; // Temperature data point 2
|
|
R1 = 2097; // Reading data point 2
|
|
#endif
|
|
|
|
#if defined __AVR_ATmega32U4__
|
|
pinMode(greenLED, OUTPUT);
|
|
pinMode(blueLED,OUTPUT);
|
|
#endif
|
|
|
|
Serial.begin(9600);
|
|
}
|
|
|
|
// the loop function runs over and over again forever
|
|
void loop() {
|
|
ledWrite(greenLED, HIGH); // turn the LED on (HIGH is the voltage level)
|
|
ledWrite(blueLED, LOW); // turn the LED on (HIGH is the voltage level)
|
|
delay(1000); // wait for a second
|
|
ledWrite(greenLED, LOW); // turn the LED off by making the voltage LOW
|
|
ledWrite(blueLED, HIGH); // turn the LED on (HIGH is the voltage level)
|
|
delay(1000); // wait for a second
|
|
|
|
sensorValue = readAnalog(0);
|
|
// Serial.println(sensorValue);
|
|
sensorValue = readAnalog(1);
|
|
|
|
float temp = T1 + (sensorValue - R1) *(T2 - T1)/(R2 - R1);
|
|
Serial.print("Temperature: ");
|
|
Serial.print(temp);
|
|
Serial.println(" C");
|
|
|
|
sensorValue = readAnalog(2);
|
|
// Serial.println(sensorValue);
|
|
}
|
|
|
|
void ledWrite(int ledPin, bool state)
|
|
{
|
|
#if defined(ARDUINO_ARCH_STM32F0) || defined(ARDUINO_ARCH_STM32F1) || defined(ARDUINO_ARCH_STM32F3) || defined(ARDUINO_ARCH_STM32F4) || defined(ARDUINO_ARCH_STM32L4)
|
|
if (ledPin == greenLED)
|
|
digitalWrite(PB9, state);
|
|
else if (ledPin == blueLED)
|
|
digitalWrite(PB8, state);
|
|
#endif
|
|
|
|
#if defined __AVR_ATmega32U4__
|
|
digitalWrite(ledPin, state);
|
|
#endif
|
|
}
|
|
|
|
int readAnalog(int pin)
|
|
{
|
|
int value = 0;
|
|
#if defined(ARDUINO_ARCH_STM32F0) || defined(ARDUINO_ARCH_STM32F1) || defined(ARDUINO_ARCH_STM32F3) || defined(ARDUINO_ARCH_STM32F4) || defined(ARDUINO_ARCH_STM32L4)
|
|
if (pin == 0)
|
|
value = analogRead(PA0);
|
|
else if (pin == 1)
|
|
value = analogRead(PA1);
|
|
else if (pin == 2)
|
|
value = analogRead(PA2);
|
|
#endif
|
|
|
|
#if defined __AVR_ATmega32U4__
|
|
value = analogRead(pin);
|
|
#endif
|
|
|
|
return(value);
|
|
}
|