Projektdateien hinzufügen.
This commit is contained in:
parent
188821ea51
commit
181ba992fb
235
Teensy4.1_Datalogger new.ino
Normal file
235
Teensy4.1_Datalogger new.ino
Normal file
@ -0,0 +1,235 @@
|
||||
// Visual Micro is in vMicro>General>Tutorial Mode
|
||||
//
|
||||
/*
|
||||
Name: Teensy4.1_Datalogger new.ino
|
||||
Created: 03.05.2022 12:04:32
|
||||
Author: GAMINGMASHEEN\Julian Graf
|
||||
*/
|
||||
|
||||
#include <SdFat.h>
|
||||
#include <TimeLib.h>
|
||||
#include <Bounce.h>
|
||||
|
||||
#define SD_FAT_TYPE 3
|
||||
|
||||
#ifndef SDCARD_SS_PIN
|
||||
const uint8_t SD_CS_PIN = SS;
|
||||
#else // SDCARD_SS_PIN
|
||||
// Assume built-in SD is used.
|
||||
const uint8_t SD_CS_PIN = SDCARD_SS_PIN;
|
||||
#endif // SDCARD_SS_PIN
|
||||
|
||||
#if HAS_SDIO_CLASS
|
||||
#define SD_CONFIG SdioConfig(FIFO_SDIO)
|
||||
#elif ENABLE_DEDICATED_SPI
|
||||
#define SD_CONFIG SdSpiConfig(SD_CS_PIN, DEDICATED_SPI)
|
||||
#else // HAS_SDIO_CLASS
|
||||
#define SD_CONFIG SdSpiConfig(SD_CS_PIN, SHARED_SPI)
|
||||
#endif // HAS_SDIO_CLASS
|
||||
|
||||
#if SD_FAT_TYPE == 0
|
||||
SdFat sd;
|
||||
File file;
|
||||
#elif SD_FAT_TYPE == 1
|
||||
SdFat32 sd;
|
||||
File32 file;
|
||||
#elif SD_FAT_TYPE == 2
|
||||
SdExFat sd;
|
||||
ExFile file;
|
||||
#elif SD_FAT_TYPE == 3
|
||||
SdFs sd;
|
||||
FsFile file;
|
||||
#else // SD_FAT_TYPE
|
||||
#error Invalid SD_FAT_TYPE
|
||||
#endif // SD_FAT_TYPE
|
||||
|
||||
// Define User Types below here or use a .h file
|
||||
//
|
||||
const char software_name[] = "Software: Teensy_datalog V.2";
|
||||
const int min_voltage_batterie = 13;
|
||||
const int fixed_resistor_temperatur = 500;
|
||||
|
||||
const int power_Temp_sensor = 34, power_Windfahne = 36, LED_Fail = 24,
|
||||
LED_Write = 5, LED_Normal = 6, LED_Batterie = 7,
|
||||
taster_manuell_speichern = 28, Windfahne = 20, T_sensor_input = 17, Batterie_input = 38;
|
||||
|
||||
int last_second, last_minute, last_hour;
|
||||
|
||||
|
||||
struct calculations {
|
||||
private:
|
||||
|
||||
float summ;
|
||||
float square_summ;
|
||||
float cubic_summ;
|
||||
|
||||
public:
|
||||
|
||||
void calculate(float speed_per_second[60], int amount_saved) {
|
||||
summ = 0;
|
||||
square_summ = 0;
|
||||
cubic_summ = 0;
|
||||
|
||||
for (int i = 0; i < amount_saved; i++) {
|
||||
summ = summ + speed_per_second[i];
|
||||
square_summ = square_summ + pow(speed_per_second[i], 2);
|
||||
cubic_summ = cubic_summ + pow(speed_per_second[i], 3);
|
||||
}
|
||||
arithmetic_mean = summ / float(amount_saved);
|
||||
square_mean = pow((square_summ / float(amount_saved)), (1 / 2.0));
|
||||
cubic_mean = pow((cubic_mean / float(amount_saved)), (1 / 3.0));
|
||||
|
||||
summ = 0;
|
||||
square_summ = 0;
|
||||
cubic_summ = 0;
|
||||
|
||||
for (int i = 0; i < amount_saved; i++) {
|
||||
summ = summ + pow((speed_per_second[i] - arithmetic_mean), 2);
|
||||
square_summ = square_summ + pow((speed_per_second[i] - square_mean), 2);
|
||||
cubic_summ = cubic_summ + pow((speed_per_second[i] - cubic_mean), 2);
|
||||
}
|
||||
arithmetic_deviation = pow((summ / float(amount_saved - 1)), (1 / 2.0));
|
||||
square_deviation = pow((square_summ / float(amount_saved - 1)), (1 / 2.0));
|
||||
cubic_deviation = pow((cubic_summ / float(amount_saved - 1)), (1 / 2.0));
|
||||
}
|
||||
|
||||
float arithmetic_mean;
|
||||
float arithmetic_deviation;
|
||||
|
||||
float square_mean;
|
||||
float square_deviation;
|
||||
|
||||
float cubic_mean;
|
||||
float cubic_deviation;
|
||||
};
|
||||
|
||||
|
||||
struct anemomenter_maessurement {
|
||||
public:
|
||||
int pin = 0;
|
||||
int seconds_saved = 0;
|
||||
int minutes_saved = 0;
|
||||
|
||||
void meassure() {
|
||||
if (reed_contact.update() && reed_contact.fallingEdge()) {
|
||||
count_per_second++;
|
||||
}
|
||||
}
|
||||
|
||||
void save_wind_speed() {
|
||||
wind_speed_per_second[seconds_saved] = 0.4 * count_per_second;
|
||||
seconds_saved++;
|
||||
}
|
||||
|
||||
void calculate() {
|
||||
values[minutes_saved].calculate(wind_speed_per_second, seconds_saved);
|
||||
seconds_saved = 0;
|
||||
minutes_saved++;
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
int count_per_second = 0;
|
||||
int saved_seconds = 0;
|
||||
int saved_minutes = 0;
|
||||
float wind_speed_per_second[60];
|
||||
|
||||
calculations values[60];
|
||||
|
||||
|
||||
Bounce reed_contact = Bounce(pin, 10);
|
||||
|
||||
}anemometer_1, anemometer_2, anemometer_3;
|
||||
|
||||
|
||||
|
||||
// Define Function Prototypes that use User Types below here or use a .h file
|
||||
//
|
||||
|
||||
|
||||
// Define Functions below here or use other .ino or cpp files
|
||||
//
|
||||
void every_second() {
|
||||
|
||||
anemometer_1.save_wind_speed();
|
||||
anemometer_2.save_wind_speed();
|
||||
anemometer_3.save_wind_speed();
|
||||
|
||||
last_second = second();
|
||||
}
|
||||
|
||||
void every_minute() {
|
||||
anemometer_1.calculate();
|
||||
anemometer_2.calculate();
|
||||
anemometer_3.calculate();
|
||||
|
||||
last_minute = minute();
|
||||
}
|
||||
|
||||
void every_hour() {
|
||||
|
||||
last_hour = hour();
|
||||
}
|
||||
|
||||
// The setup() function runs once each time the micro-controller starts
|
||||
void setup()
|
||||
{
|
||||
//set input and output
|
||||
pinMode(Windfahne, INPUT);
|
||||
pinMode(Batterie_input, INPUT);
|
||||
pinMode(T_sensor_input, INPUT);
|
||||
pinMode(taster_manuell_speichern, INPUT);
|
||||
pinMode(LED_Write, OUTPUT);
|
||||
pinMode(LED_Fail, OUTPUT);
|
||||
pinMode(LED_Normal, OUTPUT);
|
||||
pinMode(LED_Batterie, OUTPUT);
|
||||
pinMode(power_Temp_sensor, OUTPUT);
|
||||
pinMode(power_Windfahne, OUTPUT);
|
||||
|
||||
setSyncProvider((getExternalTime)Teensy3Clock.get());
|
||||
|
||||
Serial.begin(9600);
|
||||
Serial.println("Teensy 4.1-Datalogger gestartet");
|
||||
if (timeStatus() != timeSet) {
|
||||
Serial.println("Fehler bei Synchronisieren der Uhrzeit mit der RTC");
|
||||
digitalWrite(LED_Fail, HIGH);
|
||||
return;
|
||||
}
|
||||
Serial.println("Uhrzeit erfolgreich mit der RTC synchronisiert");
|
||||
if (!sd.begin(SD_CONFIG)) {
|
||||
digitalWrite(LED_Fail, HIGH);
|
||||
sd.initErrorHalt(&Serial);
|
||||
}
|
||||
|
||||
anemometer_1.pin = 2;
|
||||
anemometer_2.pin = 9;
|
||||
anemometer_3.pin = 22;
|
||||
|
||||
|
||||
Serial.println("Messung startet");
|
||||
last_second = second();
|
||||
while (last_second == second()) {};
|
||||
last_second = second();
|
||||
last_minute = minute();
|
||||
last_hour = hour();
|
||||
|
||||
}
|
||||
|
||||
// Add the main program code into the continuous loop() function
|
||||
void loop()
|
||||
{
|
||||
anemometer_1.meassure();
|
||||
anemometer_2.meassure();
|
||||
anemometer_3.meassure();
|
||||
|
||||
if (second() != last_second) {
|
||||
if (minute() != last_minute) {
|
||||
if (hour() != last_hour) {
|
||||
every_hour();
|
||||
}
|
||||
every_minute();
|
||||
}
|
||||
every_second();
|
||||
}
|
||||
|
||||
}
|
31
Teensy4.1_Datalogger new.sln
Normal file
31
Teensy4.1_Datalogger new.sln
Normal file
@ -0,0 +1,31 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.1.32421.90
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Teensy4.1_Datalogger new", "Teensy4.1_Datalogger new.vcxproj", "{2E6F448E-0966-4C65-8DA5-8AFD46F294D2}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Teensy4.1-Datenlogger-Software", "..\Projekt\Teensy4.1-Datenlogger-Software\Teensy4.1-Datenlogger-Software.vcxproj", "{C5F80730-F44F-4478-BDAE-6634EFC2CA88}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x86 = Debug|x86
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{2E6F448E-0966-4C65-8DA5-8AFD46F294D2}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{2E6F448E-0966-4C65-8DA5-8AFD46F294D2}.Debug|x86.Build.0 = Debug|Win32
|
||||
{2E6F448E-0966-4C65-8DA5-8AFD46F294D2}.Release|x86.ActiveCfg = Release|Win32
|
||||
{2E6F448E-0966-4C65-8DA5-8AFD46F294D2}.Release|x86.Build.0 = Release|Win32
|
||||
{C5F80730-F44F-4478-BDAE-6634EFC2CA88}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{C5F80730-F44F-4478-BDAE-6634EFC2CA88}.Debug|x86.Build.0 = Debug|Win32
|
||||
{C5F80730-F44F-4478-BDAE-6634EFC2CA88}.Release|x86.ActiveCfg = Release|Win32
|
||||
{C5F80730-F44F-4478-BDAE-6634EFC2CA88}.Release|x86.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {349760AA-D265-433D-A4B4-7278AE8A0FCC}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
119
Teensy4.1_Datalogger new.vcxproj
Normal file
119
Teensy4.1_Datalogger new.vcxproj
Normal file
File diff suppressed because one or more lines are too long
25
Teensy4.1_Datalogger new.vcxproj.filters
Normal file
25
Teensy4.1_Datalogger new.vcxproj.filters
Normal file
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Teensy4.1_Datalogger new.ino" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="__vm\.Teensy4.1_Datalogger new.vsarduino.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
99
__vm/.Teensy4.1_Datalogger new.vsarduino.h
Normal file
99
__vm/.Teensy4.1_Datalogger new.vsarduino.h
Normal file
@ -0,0 +1,99 @@
|
||||
/*
|
||||
Editor: https://www.visualmicro.com/
|
||||
This file is for intellisense purpose only.
|
||||
Visual micro (and the arduino ide) ignore this code during compilation. This code is automatically maintained by visualmicro, manual changes to this file will be overwritten
|
||||
The contents of the _vm sub folder can be deleted prior to publishing a project
|
||||
All non-arduino files created by visual micro and all visual studio project or solution files can be freely deleted and are not required to compile a sketch (do not delete your own code!).
|
||||
Note: debugger breakpoints are stored in '.sln' or '.asln' files, knowledge of last uploaded breakpoints is stored in the upload.vmps.xml file. Both files are required to continue a previous debug session without needing to compile and upload again
|
||||
|
||||
Hardware: Teensy 4.0 (teensy40), Platform=teensy4, Package=teensy
|
||||
*/
|
||||
|
||||
#if defined(_VMICRO_INTELLISENSE)
|
||||
|
||||
#ifndef _VSARDUINO_H_
|
||||
#define _VSARDUINO_H_
|
||||
#define __HARDWARE_imxrt1062__
|
||||
#define __HARDWARE_IMXRT1062__
|
||||
#define _VMDEBUG 1
|
||||
#define __IMXRT1062__
|
||||
#define TEENSYDUINO 148
|
||||
#define ARDUINO 108010
|
||||
#define F_CPU 600000000
|
||||
#define USB_SERIAL
|
||||
#define LAYOUT_US_ENGLISH
|
||||
#define __cplusplus 201103L
|
||||
#undef __cplusplus
|
||||
#define __cplusplus 201103L
|
||||
|
||||
|
||||
#define __arm__
|
||||
#define __ARM__
|
||||
#define __attribute__(x)
|
||||
typedef void *__builtin_va_list;
|
||||
#define __extension__
|
||||
#define __ATTR_PURE__
|
||||
#define __ATTR_CONST__
|
||||
#define __inline__
|
||||
#define __asm__(x)
|
||||
#define __volatile__
|
||||
#define NEW_H
|
||||
#undef _WIN32
|
||||
#define __STDC__
|
||||
//#define __GNUC__ 2
|
||||
//#define __GNUC_MINOR__ 5
|
||||
#define __ARM_ARCH_7EM__
|
||||
|
||||
extern int at_quick_exit(void (*f)(void));
|
||||
int at_quick_exit(void (*f)(void)) {
|
||||
}
|
||||
extern int quick_exit(void (*f)(void));
|
||||
int quick_exit(void (*f)(void)) {
|
||||
}
|
||||
|
||||
|
||||
|
||||
#define __INT64_TYPE__ 8
|
||||
#define __INTPTR_TYPE__ 4
|
||||
#define __INT32_TYPE__ 4
|
||||
|
||||
typedef long intptr_t;
|
||||
typedef long __intptr_t;
|
||||
typedef unsigned long __uintptr_t;
|
||||
typedef long __int32_t;
|
||||
typedef unsigned long __uint32_t;
|
||||
typedef unsigned short __uint16_t;
|
||||
typedef short __int16_t;
|
||||
typedef unsigned short __uint8_t;
|
||||
typedef short __int8_t;
|
||||
typedef unsigned long __uint64_t;
|
||||
typedef double __int64_t;
|
||||
typedef unsigned long uint64_t;
|
||||
typedef double int64_t;
|
||||
typedef unsigned short uint8_t;
|
||||
typedef short int8_t;
|
||||
|
||||
typedef unsigned int uint16_t;
|
||||
typedef short int16_t;
|
||||
typedef long __int32_t;
|
||||
typedef unsigned long __uint32_t;
|
||||
|
||||
#define at_quick_exit(x)
|
||||
|
||||
#include "arduino.h"
|
||||
#define abs(x) ((x)>0?(x):-(x))
|
||||
#define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt)))
|
||||
#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))
|
||||
#define radians(deg) ((deg)*DEG_TO_RAD)
|
||||
#define degrees(rad) ((rad)*RAD_TO_DEG)
|
||||
#define sq(x) ((x)*(x))
|
||||
|
||||
#define __asm__
|
||||
|
||||
#define __disable_irq() __asm__ volatile("");
|
||||
#define __enable_irq() __asm__ volatile("");
|
||||
|
||||
|
||||
#include "Teensy4.1_Datalogger new.ino"
|
||||
#endif
|
||||
#endif
|
37
__vm/Compile.vmps.xml
Normal file
37
__vm/Compile.vmps.xml
Normal file
File diff suppressed because one or more lines are too long
9
__vm/Configuration.Debug.vmps.xml
Normal file
9
__vm/Configuration.Debug.vmps.xml
Normal file
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user