inf sachen

This commit is contained in:
danielvici123
2024-12-02 11:49:11 +01:00
parent fc1eca66a4
commit c810f9541d
31 changed files with 2290 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
// ----------------------------------------------------------------------------
// Constants.cpp
//
//
// Authors:
// Peter Polidoro peterpolidoro@gmail.com
// ----------------------------------------------------------------------------
#include "Constants.h"
namespace constants
{
const uint8_t device_address = 0x40;
const size_t output_enable_pin = 2;
const size_t loop_delay = 8000;
const uint16_t frequency = 200;
const uint8_t channel = 0;
const Example examples[EXAMPLE_COUNT] =
{
{
819, // PULSE_WIDTH
409, // PHASE_SHIFT
},
{
3686, // PULSE_WIDTH
3685, // PHASE_SHIFT
},
{
// Always ON
4096, // PULSE_WIDTH
0, // PHASE_SHIFT
},
{
// Always OFF
0, // PULSE_WIDTH
0, // PHASE_SHIFT
}
};
}

View File

@@ -0,0 +1,32 @@
// ----------------------------------------------------------------------------
// Constants.h
//
//
// Authors:
// Peter Polidoro peterpolidoro@gmail.com
// ----------------------------------------------------------------------------
#ifndef CONSTANTS_H
#define CONSTANTS_H
#include <Arduino.h>
namespace constants
{
extern const uint8_t device_address;
extern const size_t output_enable_pin;
extern const size_t loop_delay;
extern const uint16_t frequency;
extern const uint8_t channel;
enum{EXAMPLE_COUNT=4};
struct Example
{
uint16_t pulse_width;
uint16_t phase_shift;
};
extern const Example examples[EXAMPLE_COUNT];
}
#endif

View File

@@ -0,0 +1,33 @@
#include <Arduino.h>
#include <PCA9685.h>
#include "Constants.h"
PCA9685 pca9685;
uint8_t example_index;
void setup()
{
pca9685.setupSingleDevice(Wire,constants::device_address);
pca9685.setupOutputEnablePin(constants::output_enable_pin);
pca9685.enableOutputs(constants::output_enable_pin);
pca9685.setToFrequency(constants::frequency);
example_index = 0;
}
void loop()
{
delay(constants::loop_delay);
if (example_index >= constants::EXAMPLE_COUNT)
{
example_index = 0;
}
constants::Example example = constants::examples[example_index++];
pca9685.setChannelPulseWidth(constants::channel,example.pulse_width,example.phase_shift);
}