Projet | ​​Mini projet - Arduino | ​​​​Ibutton - bus One Wire

Ibutton DS1990A

Cliquer pour agrandir

La société Maxim produit le bouton référencé DS1990A. Notre carte Arduino communique avec lui avec un fil seulement !  

Ce composant s'alimente par ce même fil via une résistance de 5kΩ. Il intègre un numéro de série contenant 64 bits ce qui le rend unique car aucun autre n'a le même numéro ! Il est donc utilisable en tant que clé. Ce numéro est écrit sur le bouton même.

La bibliothèque ​OneWire.h facilite la mise en oeuvre du bus de même nom.

Activités

  1. Installer la bibliotèque dans le répertoire Document/Arduino/Libraries.
  2. Essayer le programme joint en observant le terminal Arduino.

Mini-projet

  • Allumer ou éteindre une led si la clé est présentée.
  • Allumer une led verte pendant une seconde lorsque la clé présentée est reconnue ou rouge sinon.
  • Afficher dans le terminal Arduino le nombre de fois qu'une clé est présentée.
  • Allumer une led verte pendant une seconde dans le cas où une clé est reconnue mais seulement à la première présentation.

Méthodes associées à la bibliothèque oneWire.h

  • OneWire myWire(pin) : Create the OneWire object, using a specific pin. Even though you can connect many 1 wire devices to the same pin, if you have a large number, smaller groups each on their own pin can help isolate wiring problems. You can create multiple OneWire objects, one for each pin.
  • myWire.search(addrArray) : Search for the next device. The addrArray is an 8 byte array. If a device is found, addrArray is filled with the device's address and true is returned. If no more devices are found, false is returned.
  • myWire.reset_search() : Begin a new search. The next use of search will begin at the first device.
  • myWire.reset() : Reset the 1-wire bus. Usually this is needed before communicating with any device.
  • myWire.select(addrArray) : Select a device based on its address. After a reset, this is needed to choose which device you will use, and then all communication will be with that device, until another reset.
  • myWire.skip() : Skip the device selection. This only works if you have a single device, but you can avoid searching and use this to immediatly access your device.
  • myWire.write(num) : Write a byte.
  • myWire.write(num, 1) : Write a byte, and leave power applied to the 1 wire bus.
  • myWire.read() : Read a byte.
  • myWire.crc8(dataArray, length); : Compute a CRC check on an array of data.​

Dispositif lecture

Cliquer pour agrandir

IButton DS1990A avec connecteur / carte Uno /  proto shield / filerie / résistance de polarisation : 4,7k Ω

lecture ibutton

Cliquer pour agrandir
Ce programme indique dans le terminal si le IButton de numéro de série (AD08B9140000)h est présenté sur le connecteur.