Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <OneWire.h>
- #define pin 10
- OneWire ibutton (pin); // Подключаем ключ к 10 пину дуни
- byte addr[8]; //Буфер, хранящий в себе ид ключа
- void setup(){
- Serial.begin(115200);
- }
- void loop(){
- if (!ibutton.search (addr)){//Читаем ключ в буфер
- ibutton.reset_search();
- delay(200);
- return;
- }
- Serial.print(millis()/1000);
- Serial.print("> ");
- for (byte x = 0; x<8; x++){
- Serial.print(addr[x],HEX); //Печатаем содержимое буфера в консоль
- Serial.print(" ");
- }
- //compute crc//
- byte crc;
- crc = ibutton.crc8(addr, 7);
- Serial.print("CRC: ");
- Serial.println(crc,HEX);
- if ( Serial.read() == 'w' ){
- ibutton.skip();ibutton.reset();ibutton.write(0x33);
- Serial.print(" ID before write:");
- for (byte x=0; x<8; x++){
- Serial.print(' ');
- Serial.print(ibutton.read(), HEX);
- }
- // send reset
- ibutton.skip();
- ibutton.reset();
- // send 0xD1
- ibutton.write(0xD1);
- // send logical 0
- digitalWrite(10, LOW); pinMode(10, OUTPUT); delayMicroseconds(60);
- pinMode(10, INPUT); digitalWrite(10, HIGH); delay(10);
- Serial.print('\n');
- Serial.print(" Writing iButton ID:\n ");
- // Хочу записать вот это ид 1:CF:E0:62:E:0:0:3
- byte newID[8] = {0x01, 0xCF, 0xE0, 0x62, 0x0E, 0x00, 0x00, 0x3};
- ibutton.skip();
- ibutton.reset();
- ibutton.write(0xD5);
- for (byte x = 0; x<8; x++){
- writeByte(newID[x]);
- Serial.print('*');
- }
- Serial.print('\n');
- ibutton.reset();
- // send 0xD1
- ibutton.write(0xD1);
- //send logical 1
- digitalWrite(10, LOW); pinMode(10, OUTPUT); delayMicroseconds(10);
- pinMode(10, INPUT); digitalWrite(10, HIGH); delay(10);
- }
- }
- int writeByte(byte data){
- int data_bit;
- for(data_bit=0; data_bit<8; data_bit++){
- if (data & 1){
- digitalWrite(pin, LOW); pinMode(pin, OUTPUT);
- delayMicroseconds(60);
- pinMode(pin, INPUT); digitalWrite(pin, HIGH);
- delay(10);
- } else {
- digitalWrite(pin, LOW); pinMode(pin, OUTPUT);
- pinMode(pin, INPUT); digitalWrite(pin, HIGH);
- delay(10);
- }
- data = data >> 1;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement