diff --git a/MASTER.ino b/MASTER.ino
new file mode 100644
index 0000000..24ad964
--- /dev/null
+++ b/MASTER.ino
@@ -0,0 +1,75 @@
+#include <avr/interrupt.h>
+#include <avr/io.h>
+
+#define SPI_PORTX PORTB
+#define SPI_DDRX DDRB
+
+#define SPI_MISO 4
+#define SPI_MOSI 3
+#define SPI_SCK 5
+#define SPI_SS 2
+
+
+
+void SPI_MasterInit(void)
+{
+   /* Настройка MOSI и SCK как выход,
+      все остальные сигналы как вход: */
+   SPI_DDRX = (1 << SPI_MOSI)|(1 << SPI_SCK)|(1<<SPI_SS)|(0<<SPI_MISO);
+   /* Разрешить работу SPI, режим Master,
+      установить скорость тактов fck/16: */
+   SPCR = (1 << SPE)|(1 << MSTR)|(0<<CPOL)|(0<<CPHA)|(1 << SPR0);
+    SPI_PORTX |= (1 << SPI_SS);
+}
+
+
+void SPI_MasterTransmit(char* buffer, size_t length)
+{
+  SPI_PORTX &= ~(1 << SPI_SS);
+  
+  for(int i=0; i<length; i++ ){
+   SPDR = buffer[i];
+   while(!(SPSR & (1 << SPIF)));
+   Serial.println("Transmitede");
+   delay(2000);
+  }
+  SPI_PORTX |= (1 << SPI_SS);
+}
+
+byte crc8(byte *data, int length) {
+  byte crc = 0x00;
+  byte poly = 0x07; //полином для CRC
+  for (int i=0; i<length-2; i++){
+    crc ^= data[i]; //XOR текущего байта с CRC
+    for (int j=0; j<length; j++) {
+      if (crc & 0x80){ //если старший бит CRC равен 1
+        crc = (crc << 1) ^ poly; //сдвигаем CRC на 1 бит влево и XOR с полиномом
+      }else{
+        crc <<= 1; //иначе просто сдвигаем на 1 бит влево
+      }
+    }
+  }
+  return crc;
+}
+
+
+void setup() {
+  SPI_MasterInit();
+  Serial.begin(9600);
+  Serial.println("Arduino 1 starded");
+}
+
+
+void loop() {
+  char buffer[] = {'a', 't', 'g', '1', 0};
+  for(int y=5; y<21; y++) {
+    buffer[0]=0x06;
+    buffer[1]=3;
+    buffer[2]=y;
+    buffer[3]=0x01;
+    buffer[4]=crc8(&buffer[0], 4);
+    SPI_MasterTransmit(&buffer[0], 5);
+  
+  }
+  
+}
diff --git a/sketch_apr13a2.ino b/sketch_apr13a2.ino
new file mode 100644
index 0000000..b75ac01
--- /dev/null
+++ b/sketch_apr13a2.ino
@@ -0,0 +1,85 @@
+#include <avr/interrupt.h>
+#include <avr/io.h>
+
+#define SPI_PORTX PORTB
+#define SPI_DDRX DDRB
+
+#define SPI_MISO 4
+#define SPI_MOSI 3
+#define SPI_SCK 5
+#define SPI_SS 2
+
+
+
+void SPI_MasterInit(void)
+{
+   /* Настройка MOSI и SCK как выход,
+      все остальные сигналы как вход: */
+   SPI_DDRX = (1 << SPI_MOSI)|(1 << SPI_SCK)|(1<<SPI_SS)|(0<<SPI_MISO);
+   /* Разрешить работу SPI, режим Master,
+      установить скорость тактов fck/16: */
+   SPCR = (1 << SPE)|(1 << MSTR)|(0<<CPOL)|(0<<CPHA)|(1 << SPR0);
+    SPI_PORTX |= (1 << SPI_SS);
+}
+
+
+void SPI_MasterTransmit(char* buffer, size_t length)
+{
+  SPI_PORTX &= ~(1 << SPI_SS);
+  
+  for(int i=0; i<length; i++ ){
+   SPDR = buffer[i];
+   while(!(SPSR & (1 << SPIF)));
+   Serial.println("Transmitede");
+   delay(2000);
+  }
+  SPI_PORTX |= (1 << SPI_SS);
+}
+
+byte crc8(byte* data, int length) {
+  byte crc = 0x00;
+  byte poly = 0x07;
+  for (int i=0; i<length-2; i++){
+    crc ^= data[i];
+    for (int j=0; j<length; j++) {
+      if (crc & 0x80){
+        crc = (crc << 1) ^ poly;
+      }else{
+        crc <<= 1;
+      }
+    }
+  }
+  return crc;
+}
+/*void SPI_MasterTransmit(char cData)
+{
+    Serial.println("SPI_MasterTransmitSPI_MasterTransmitSPI_MasterTransmit");
+   SPI_PORTX &= ~(1 << SPI_SS);
+   Запуск передачи данных: 
+   SPDR = cData;
+    Ожидание завершения передачи:
+   while(!(SPSR & (1 << SPIF)));
+    Serial.println("Transmitede");
+    SPI_PORTX |= (1 << SPI_SS);
+}*/
+
+void setup() {
+  SPI_MasterInit();
+  Serial.begin(9600);
+  Serial.println("Arduino 1 starded");
+}
+
+
+void loop() {
+  char buffer[] = {'a', 't', 'g', '1', 0};
+  for(int y=5; y<21; y++) {
+    buffer[0]=0x06;
+    buffer[1]=3;
+    buffer[2]=y;
+    buffer[3]=0x01;
+    buffer[4]=crc8;
+    SPI_MasterTransmit(&buffer[0], 5);
+  
+  }
+  
+}