Arduino

Index

General

Maquinari / Hardware

Alimentació / Power supply

  • (Locoduino)



  • Uno
    Mega
    Nano
    Pro Mini
    (5V model)
    Pro Mini
    (3.3V model)
    input
    unregulated
    input for onboard regulator
    jack 2.1 or "Vin": 7-12V DC jack 2.1 or "Vin": 7-12V DC "VIN" (pin 30): 6-20V "RAW": 7-12V DC "RAW": 7-12V DC
    USB

    B
    B
    mini-B
    (from FTDI adapter)
    (from FTDI adapter)
    regulated 5V (3.3V in certain models)

    -
    -
    "5V" (pin 27): 5V
    "VCC": 5V
    "VCC": 3.3V
    output
    5V
    output of onboard regulator
    "5V"
    "5V" "5V" (pin 27): 5V "VCC": 5V

    3.3V 50mA
    output of onboard regulator "3.3V"
    "3.3V" 3.3V (pin 17)

    "VCC": 3.3V
    IOREF
    voltage reference with which the microcontroller operates
    x
    "IOREF"
    REF (pin 16)


Interfícies / Interfaces

Desenvolupament / Development

  • Getting started with Arduino and Genuino products
  • Arduino software
  • Program
  • Serial monitor (without IDE; or monitoring a second Arduino)
  • IDE
  • Connexió USB / USB connection
    • afegiu el vostre usuari al grup dialout (grup propietari de /dev/ttyUSBxx) / add your user to group dialout (group owner of /dev/ttyUSBxx):
      • sudo usermod -a -G dialout my_user
      • newgrp dialout
    • journalctl -f
      • connecteu la placa / connect your board
      • NodeMCU
        • CH340
          • de gen. 11 18:52:16 localhost kernel: usb 1-2: ch341-uart converter now attached to ttyUSB0
    • lsusb
      • Arduino
        • Nano: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
      • NodeMCU
        • CH340: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
  • Arduino IDE
    • Instal·lació / Installation
    • Ús / Usage
      • Arrencada / Start
        • des de la icona de l'escriptori / from desktop icon
          • prèviament heu d'haver executat install.sh / previous ./install is required
        • from command line
          • cd arduino-1.8.13
          • ./arduino
      • Tools
        • Placa: ...
        • Port: /dev/ttyUSB0
      • Preferències / Preferences
        • Temes / Themes
        • Utilitza un editor extern / Use an exteral editor
          • Es pot fer servir qualsevol editor per a editar el fitxer (p.ex. emacs), i l'IDE per a verificar-lo i pujar-lo
      • Program
        • Eines -> Informació de la placa
        • Obre (4a icona)
          • Basics -> Blink
          • crearà el codi font:
            • Blink.ino
        • Fitxer -> Sketchbook
          • projectes propis, desats a ~/Arduino/ (es pot canviar a Fitxer->Preferències->Ubicació del Sketchbook)
        • Esbós -> Verifica/Compila
          • crearà
            • Blink.ino.hex
            • ...
        • Esbós -> Puja
          • Problemes / Problems
            • PORTS {} / {} => {}
              Couldn't find a Board on the selected port. Check that you have the correct port selected.  If it is correct, try pressing the board's reset button after initiating the upload.
              • Solució / Solution
                • Segurament es tracta d'una placa ATmega32u4 (Micro, Leonardo)
                • Mentre apareixen les línies «PORTS {} / {} => {}», premeu dues vegades ràpidament el botó físic de la placa
  • Command line
    • arduino-cli
    • arduino-1.8.5/hardware/tools/avr/bin
    • See detailed logs when using Upload button on Arduino IDE:
      • /disc/Baixades/arduino-1.8.5/arduino-builder \
        -compile \
        -logger=machine \
        -hardware /disc/Baixades/arduino-1.8.5/hardware \
        -tools /disc/Baixades/arduino-1.8.5/tools-builder \
        -tools /disc/Baixades/arduino-1.8.5/hardware/tools/avr \
        -built-in-libraries /disc/Baixades/arduino-1.8.5/libraries \
        -libraries /home/cesc/Arduino/libraries \
        -fqbn=arduino:avr:micro \
        -vid-pid=0X2341_0X8037 \
        -ide-version=10805 \
        -build-path /tmp/arduino_build_595924 \
        -warnings=all \
        -build-cache /tmp/arduino_cache_334524 \
        -prefs=build.warn_data_percentage=75 \
        -prefs=runtime.tools.arduinoOTA.path=/disc/Baixades/arduino-1.8.5/hardware/tools/avr \
        -prefs=runtime.tools.avrdude.path=/disc/Baixades/arduino-1.8.5/hardware/tools/avr \
        -prefs=runtime.tools.avr-gcc.path=/disc/Baixades/arduino-1.8.5/hardware/tools/avr \
        -verbose \
        /disc/Baixades/arduino-1.8.5/examples/01.Basics/Blink/Blink.ino
      • /disc/Baixades/arduino-1.8.5/hardware/tools/avr/bin/avrdude \
        -C/disc/Baixades/arduino-1.8.5/hardware/tools/avr/etc/avrdude.conf \
        -v \
        -patmega32u4 \
        -cavr109 \
        -P/dev/ttyACM0 \
        -b57600 \
        -D \
        -Uflash:w:/tmp/arduino_build_595924/Blink.ino.hex:i
    • Compile (.ino -> .hex) using arduino-builder:
      • arduino-builder ...
    • Upload (.hex file) to Arduino using avrdude:
      • AVR Tutorial: Starting out with avrdude
      • export ARDUINO_ROOT=/disc/Baixades/arduino-1.8.13 avrdude -C${ARDUINO_ROOT}/hardware/tools/avr/etc/avrdude.conf -v -patmega32u4 -cavr109 -P/dev/ttyACM0 -b57600 -D -Uflash:w:/tmp/arduino_build_595924/Blink.ino.hex:i
      • Problemes / Problems
        • avrdude: butterfly_recv(): programmer is not responding
          • Solució / Solution
              • desconnecteu el cable USB; torneu a connectar-lo
              • opció 1 (all software):
                • export ARDUINO_ROOT=/disc/Baixades/arduino-1.8.13 stty -F /dev/ttyACM0 1200 && sleep 1 && ${ARDUINO_ROOT}/hardware/tools/avr/bin/avrdude -C${ARDUINO_ROOT}/hardware/tools/avr/etc/avrdude.conf -v -patmega32u4 -cavr109 -P/dev/ttyACM0 -b57600 -D -Uflash:w:/tmp/arduino_build_979439/Blink.ino.hex:i
              • opció 2 (hardware + software):
                1. premeu ràpidament dues vegades el botó físic de reset de la placa: la placa es posarà en mode bootloader (led de la placa en parpelleig ràpid) durant uns 8 segons; durant aquest temps executeu el pas número 2 / quick double press the physical hardware reset button: th board will be in bootloader mode (quick flash of board led) for about 8 seconds; inside this period of time, perform the step number 2
                  • si durant aquests 8 segons feu lsusb
                    • ID 2a03:0037 dog hunter AG Arduino Micro (bootloader)
                2. ${ARDUINO_ROOT}/hardware/tools/avr/bin/avrdude -C${ARDUINO_ROOT}/hardware/tools/avr/etc/avrdude.conf -v -patmega32u4 -cavr109 -P/dev/ttyACM0 -b57600 -D -Uflash:w:/tmp/arduino_build_979439/Blink.ino.hex:i
        • Arduino IDE: Puja
          PORTS {} / {} => {}
          Couldn't find a Board on the selected port. Check that you have the correct port selected.  If it is correct, try pressing the board's reset button after initiating the upload.
          • Solució / Solution
            • Mentre apareixen les línies «PORTS {} / {} => {}», premeu dues vegades ràpidament el botó físic de la placa
  • Biblioteques / Libraries
  • Exemples / Examples
    • Starter kit
    • The Arduino playground
    • Tutorials
    • Tutoriales y proyectos con Arduino (Naylamp)
    • Pantalles / Screens
      • LCD IIC (LCM1602)
      • Adafruit (Pantalla OLED 1.3' SH1106 128x64)
        • u8g2
          • Hardware SPI (use specific connections: D13-SCLK--CLK, D11-MOSI--MOSI)
            • U8G2_SH1106_128X64_NONAME_1_4W_HW_SPI(rotation, cs, dc [, reset])
            • U8G2_SH1106_128X64_NONAME_2_4W_HW_SPI(rotation, cs, dc [, reset])
            • U8G2_SH1106_128X64_NONAME_F_4W_HW_SPI(rotation, cs, dc [, reset])
          • Software SPI (use specified pins: clock, data)
            • U8G2_SH1106_128X64_NONAME_1_4W_SW_SPI(rotation, clock, data, cs, dc [, reset])
            • U8G2_SH1106_128X64_NONAME_2_4W_SW_SPI(rotation, clock, data, cs, dc [, reset])
            • U8G2_SH1106_128X64_NONAME_F_4W_SW_SPI(rotation, clock, data, cs, dc [, reset])
          • Modes
            • mode
              pros
              cons
              constructor
              example
              page buffer (picture loop)
              • all graphics
              • llittle RAM
              • slow
              1
              void setup(void) {
                u8g2.begin();
              }

              void loop(void) {
                u8g2.firstPage();
                do {
                  u8g2.setFont(u8g2_font_ncenB14_tr);
                  u8g2.drawStr(0,24,"Hello World!");
                } while ( u8g2.nextPage() );
              }
              u8x8 character
              • fast
              • no RAM
              • no graphics
              • no all displays
              2
              void setup(void) {
                u8x8.begin();
              }

              void loop(void) {
                u8x8.setFont(u8x8_font_chroma48medium8_r);
                u8x8.drawString(0,1,"Hello World!");
              }
              full buffer
              • fast
              • all graphics
              • lot of RAM
              F
              void setup(void) {
                u8g2.begin();
              }

              void loop(void) {
                u8g2.clearBuffer();
                u8g2.setFont(u8g2_font_ncenB14_tr);
                u8g2.drawStr(0,20,"Hello World!");
                u8g2.sendBuffer();
              }
          • Example
            • Connections (4W_HW_SPI)
              • OLED
                Arduino
                GND
                GND
                VCC
                5V
                CLK
                D13
                MOSI
                D11
                RES
                D8
                DC
                D9
                CS
                D10
            • IDE: Examples / U8g2
              • uncomment:
                • U8G2_SH1106_128X64_NONAME_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
            • Basic program
              • #include <Arduino.h>
                #include <U8g2lib.h>
                #include <SPI.h>
                #include <Wire.h>

                // free choice
                #define PIN_CS 10
                #define PIN_DC 9

                #define PIN_RESET 8

                // HW => CLK=D13, MOSI=D11
                U8G2_SH1106_128X64_NONAME_F_4W_HW_SPI u8g2(U8G2_R0, PIN_CS, PIN_DC, PIN_RESET);

                void setup(void) {
                  u8g2.begin();
                }

                void loop(void) {
                  u8g2.clearBuffer();
                  u8g2.setFont(u8g2_font_ncenB14_tr);
                  u8g2.drawStr(0,20,"Bon dia!");
                  u8g2.drawCircle(20, 40, 10);
                  u8g2.sendBuffer();
                }
            • Interfacing & displaying a custom graphic on an 0.96″ I2C OLED with Arduino
        • u8glib

DCC

  • ...

ESP8266

Mòduls / Modules

...
família tipus model interfície /
interface
biblioteques / libraries projectes
entrada sensor distància HC-SR04



sensor de moviment PIR HC-SR501



sensor de temperatura AM2302 (DHT22)

acceleròmetre MMA7361



ECG AD8232



rellotge RTC DS3231



rotary encoder Octopus OBEncoder


sortida relé 5v



motors L298N


pantalla LCD 16x2 LCM1602 IIC V1 I2C

OLED 1.3" SSH1106 (128x64) SPI
comunicació bluetooth HC-06


http://www.francescpinyol.cat/arduino.html
Primera versió: / First version: 29.XII.2017
Darrera modificació: 7 de febrer de 2021 / Last update: 7th February 2021

Valid HTML 4.01!

Cap a casa / Back home