Esimerkkejä


Asetukset

Valitse oikea Board, Processor ja Port.

image

Serial.begin(9600);

Paina 'Serial monitor'

image


Valitse oikea Baud Rate.

image


I2C-osoite

I2C-osoitteen hakemineen
#include "Arduino.h" // vain jos käytät VSCode ja PlatformIO
#include <Wire.h> //include Wire.h library

void setup()
{
   Wire.begin();       // Wire communication begin
   Serial.begin(9600); // The baudrate of Serial monitor is set in 9600
   while (!Serial)
       ; // Waiting for Serial Monitor
   Serial.println("\nI2C Scanner");
}

void loop()
{
   byte error, address; // variable for error and I2C address
   int nDevices;

   Serial.println("Scanning...");

   nDevices = 0;
   for (address = 1; address < 127; address++)
   {
       // The i2c_scanner uses the return value of
       // the Write.endTransmisstion to see if
       // a device did acknowledge to the address.
       Wire.beginTransmission(address);
       error = Wire.endTransmission();

       if (error == 0)
       {
           Serial.print("I2C device found at address 0x");
           if (address < 16)
               Serial.print("0");
           Serial.print(address, HEX);
           Serial.println("  !");
           nDevices++;
       }
       else if (error == 4)
       {
           Serial.print("Unknown error at address 0x");
           if (address < 16)
               Serial.print("0");
           Serial.println(address, HEX);
       }
   }
   if (nDevices == 0)
       Serial.println("No I2C devices found\n");
   else
       Serial.println("done\n");

   delay(5000); // wait 5 seconds for the next I2C scan
}

Ledit

led blink
#include <Arduino.h>

// sisäänrakennettu ledi (mega2560)
int ledPin = 13;

void setup()
{

    pinMode(ledPin, OUTPUT);
    pinMode(A0, INPUT_PULLUP);
}

void loop()
{

    // perus ledin vilkkuminen

    // digitalWrite(ledPin, HIGH);
    // delay(1000);
    // digitalWrite(ledPin, LOW);
    // delay(1000);

    // tekee saman kui ylempi koodi
    digitalWrite(ledPin, !digitalRead(ledPin));
    delay(1000);
}

Napit

Nappien käyttö
#include "Arduino.h" // vain jos käytät VSCode ja PlatformIO

// sisäänrakennettu ledi (mega2560)
int ledPin = 13;

int tempo = 1000;

// nappien pinnit
int buttonPins[4] = {47, 49, 51, 53};

// 4 kpl nappien pinnejä (alkaa nollasta)

// buttonPins[0] = 47;
// buttonPins[1] = 49;
// buttonPins[2] = 51;
// buttonPins[3] = 53;

// nappi "malli" joka sisältää napin tiedot
struct Button
{
    int number;
    int pin;
};

//#############################################################################
// esimerkki struct käytöstä
struct Car
{
    String manufacturer;
    String model;
    unsigned int year;
    unsigned int price;
};

Car cars[3] = {
    {"Ford", "Mustang", 1969, 200000},
    {"Audi", "A4", 2017, 300000},
    {"BMW", "X5", 2018, 400000}};

// Serial.println(cars[0].manufacturer);       Ford
// Serial.println(cars[2].year);              2018
//#############################################################################

// tehdään 4 nappia
Button buttons[4];

// väliaikainen aika-muuttuja
int tempTime = 0;

void setup()
{

    // ledin pinni
    pinMode(ledPin, OUTPUT);

    // käydään kaikki napit läpi ja aseteaan tiedot
    for (int i = 0; i < sizeof(buttons) / sizeof(buttons[0]); i++)
    {
        pinMode(buttonPins[i], INPUT_PULLUP);
        buttons[i].number = i;
        buttons[i].pin = buttonPins[i];
    }

    Serial.begin(9600);
}

void checkButton(Button button)
{

    int reading = digitalRead(button.pin);

    if (reading == LOW)
    {
        if (millis() - tempTime > 50)
        {
            tempTime = millis();
            Serial.println("Button " + String(button.number) + " pressed, pin " + String(button.pin));
            while (digitalRead(button.pin) == LOW)
            {
                // wait for release
            }
            tempTime = millis();
        }
    }
}

void loop()
{
    checkButton(buttons[0]);
    checkButton(buttons[1]);
    checkButton(buttons[2]);
    checkButton(buttons[3]);
}

Potentiometri

Potentiometrin käyttö
// potentiometri

RTC / Aikamoduuli

RTC Käyttö

kuva

lataa SetTime arduinolle, sen jälkeen ReadTest niin näkee toimiiko moduuli.

examples löytyy lisää, kun etsii RTC sanaa