DIY fertilizer mixer and plant watering machine https://www.xythobuz.de/giessomat.html
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.

GPIOBank.cpp 947B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include <Arduino.h>
  2. #include "GPIOBank.h"
  3. GPIOBank::GPIOBank(int _size) {
  4. size = _size;
  5. pins = new int[size];
  6. }
  7. GPIOBank::~GPIOBank(void) {
  8. delete pins;
  9. }
  10. void GPIOBank::setPinNumbers(int _pins[]) {
  11. for (int i = 0; i < size; i++) {
  12. pins[i] = _pins[i];
  13. }
  14. }
  15. void GPIOBank::setOutput(void) {
  16. for (int i = 0; i < size; i++) {
  17. pinMode(pins[i], OUTPUT);
  18. }
  19. }
  20. void GPIOBank::setInput(bool pullup) {
  21. for (int i = 0; i < size; i++) {
  22. if (pullup) {
  23. pinMode(pins[i], INPUT_PULLUP);
  24. } else {
  25. pinMode(pins[i], INPUT);
  26. }
  27. }
  28. }
  29. int GPIOBank::getSize(void) {
  30. return size;
  31. }
  32. void GPIOBank::setPin(int n, bool state) {
  33. if ((n >= 0) && (n < size)) {
  34. digitalWrite(pins[n], state ? HIGH : LOW);
  35. }
  36. }
  37. bool GPIOBank::getPin(int n) {
  38. if ((n >= 0) && (n < size)) {
  39. return digitalRead(pins[n]);
  40. } else {
  41. return LOW;
  42. }
  43. }