|

Tworzenie własnej biblioteki w Arduino – 74HC595

Tworzenie biblioteki do obsługi rejestru przesuwnego

Wytyczne do tworzenia biblioteki w Arduino:

https://docs.arduino.cc/learn/contributions/arduino-creating-library-guide

https://arduino.github.io/arduino-cli/0.35/library-specification

Gotowa biblioteka ShiftReg na github https://github.com/astraja/ShiftReg

Podłączenie rejestru przesuwnego 74HC595 z Arduino:

Podłączenie rejestru przesuwnego 74HC595 z Arduino
Podłączenie rejestru przesuwnego 74HC595 z Arduino

Kody źródłowe najważniejszych plików w bibliotece

Plik cpp

#include "ShiftReg.h"

int _dataPin;
int _latchPin;
int _clockPin;

//Constructor
ShiftReg::ShiftReg(int dataPin, int latchPin, int clockPin) {
  _dataPin = dataPin;
  _latchPin = latchPin;
  _clockPin = clockPin;
}

void ShiftReg::begin(){
  pinMode(_dataPin, OUTPUT);
  pinMode(_latchPin, OUTPUT);
  pinMode(_clockPin, OUTPUT);
}


void ShiftReg::sendData(byte data) {

  digitalWrite(_latchPin, LOW);
  for (int i = 0; i <= 7; i++) {
    digitalWrite(_clockPin, LOW);
    digitalWrite(_dataPin, bitRead(data, i));
    digitalWrite(_clockPin, HIGH);
  }
  digitalWrite(_latchPin, HIGH);
}

Plik h

/*
  ShiftReg.h - Library for Shift Register 74HC595
  Created by Mateusz Wilinski, May 19, 2024.
  Released into the public domain.
*/
#ifndef ShiftReg_h
#define ShiftReg_h

#include <arduino.h>

class ShiftReg{
  public:
    //Constructor
  //! Description of the function
  //!
  //! @param dataPin nr pinu
  //! @param latchPin nr pinu latch
  //! @param clockPin nr pinu clock
    ShiftReg(int dataPin, int latchPin, int clockPin);

    //Methods
    
    void begin();
    void sendData(byte data);
  private:

};

#endif

Plik keywords.txt

# --------------------------
# ShiftReg library syntax
# --------------------------

# Datatypes
ShiftReg KEYWORD1

# Methods
begin KEYWORD2
sendData KEYWORD2

# Constants (LITERAL1)

library.properties

name=ShiftReg
version=1.0.0
author=Mateusz Wilinski, astraja.pro@gmail.com
maintainer=Mateusz Wilinski, astraja.pro@gmail.com
sentence=Interract with 74HC595 Shift Register
paragraph=ShiftReg makes interaction with Shift Register easy
category=Device Control
url=https://github.com/astraja/ShiftReg.git
architectures=avr,arm,megaavr,esp32
includes=ShiftReg.h

Sketch Arduino

#include <ShiftReg.h>
ShiftReg shiftReg(4,5,6); // ShiftReg(int dataPin, int latchPin, int clockPin);

byte databyte = 0b10000101;

void setup(){
  shiftReg.begin();
  shiftReg.sendData(databyte);

}

void loop(){}

Przeczytaj: Rejestr przesuwny 74HC595 z Arduino

Przeczytaj: Wyświetlacz 7 segmentowy z Arduino i rejestrem przesuwnym 74HC595

Podobne wpisy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *