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:
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