+15 Arduino-Projekte f√ľr Anf√§nger  Liste ‚Ė∑ 2021

Willkommen zu einem neuen artikel, die entwickelt von Johann ‚úÖ Wir hoffen, dass kann f√ľr Sie von Nutzen sein und entschlossenheit Ihre fragen.

Arduino ist sehr bekannt als Plattform, auf der jeder Open Source-Hardware und -Software entwickeln kann.. Das Ziel dieses Unternehmens ist Erstellen Sie digitale oder interaktive Geräte mithilfe von Hardwarekarten.

Ein Arduino-Board erf√ľllt eine Vielzahl von Aufgaben. Funktioniert √ľber die Arduino IDE, wo Sie die Programmiersprache verwenden k√∂nnen Anweisungen auf die von dieser Karte abgedeckten Schaltkreise zu schreiben.

Der Grund, warum wir diesen Beitrag gemacht haben, Es kann je nach den Bed√ľrfnissen und Verwendungszwecken variieren, die Sie ihm geben m√∂chten. Hier sind die bekanntesten und realisierbarsten Arduino-Projekte, die Sie verwenden k√∂nnen.

Liste der besten Arduino-Projekte f√ľr Anf√§nger, die Sie selbst durchf√ľhren k√∂nnen

Arduino

Mit diesen Projekten, Sie lernen einige der grundlegendsten Konzepte f√ľr die Erstellung von Programmen und Interaktionsger√§ten kennen. sowie die Verwendung verschiedener Komponenten, damit Sie au√üergew√∂hnliche Systeme zu Ihrem eigenen Vorteil entwerfen k√∂nnen.

Tue es:

Machen Sie einen Batterietester

Machen Sie einen Batterietester

Wenn Sie sehen möchten, wie viel Strom noch in einer Ihrer Batterien vorhanden ist, Mit diesem Projekt können Sie Ihren idealen Batterietester bauen. Durch einige Elemente wie a Arduino UNO Vorstand und einige LEDsSie haben den Vorteil, dass Sie die Lebensdauer einer Batterie unter 5 Watt aufbauen und testen können.

Sie ben√∂tigen f√ľr dieses Projekt eine Arduino UNO-Karte, ein Temperatursensor; Feuchtigkeit und Druck; Adafruit BME680, eine Adafruit INA169-Monitorplatine, ein 1 kOhm-Widerstand, ein Kondensator, eine Z√ľndkerze und ein Kabelsatz zum Verbinden aller Elemente mit der Platine.

Sobald Sie alle diese Produkte haben und zusammengebaut haben, wie das Bild zeigt, m√ľssen Sie die Arduino-Programmierumgebung aufrufen und die folgenden Anweisungen aufzeichnen:

#include "Arduino.h"

#include "Board.h"

#include "Helium.h"

#include "HeliumUtil.h"

#include "TimeLib.h"

#include "BlueDot_BME680.h"

#include "TimerSupport.h"

#define CHANNEL_NAME "GCIoTCore"

#define XMIT_PERIOD_MS 20000

#define VOLTS_SAMPLE_RATE_MS 250

Helium helium(&atom_serial);

Channel channel(&helium);

BlueDot_BME680 bme680 = BlueDot_BME680();

#define TS_BUF_SIZE 40

char TSbuf[TS_BUF_SIZE];

char *TSbuf_ptr = TSbuf;

char buffer[HELIUM_MAX_DATA_SIZE];

#define ADC_VOLTS_PER_BIT 0.00488

int ADCValue = 0;

struct helium_info info;

time_t timestamp;

TimeElements tm;

long highCurrentSamples = 0;

long lowCurrentSamples = 0;

float peakCurrent = 0;

float peakVoltage = 0;

#define MAX_JSON_FORMAT_STR 7

char JSON_FORMATS[][MAX_JSON_FORMAT_STR] = 

""i":",

","T":",

","H":",

","DT":",

","V":",

","IP":",

","IA":",

""

;

int addToBuffer(char *insertionPoint, int maxLen, char *src)



snprintf(insertionPoint, maxLen, src);

return strlen(insertionPoint);



void sendInfoViaHelium()



static unsigned long i = 0;

float t = 0;

float h = 0;

float v = 0;

float ip = 0;

float ia = 0;

char *buf_ptr = buffer;

char tmpBuf[11];

long totalSamples = highCurrentSamples + lowCurrentSamples;

i++;

print(F("i = "));

println(i);

buf_ptr += addToBuffer(buf_ptr, MAX_JSON_FORMAT_STR, JSON_FORMATS[0]);

snprintf(tmpBuf, 11, "%lu", i);

buf_ptr += addToBuffer(buf_ptr, sizeof(tmpBuf), tmpBuf);

writeCTRLMeas();

t = bme680.readTempC();

print(F("Temp = " ));

print

println(F(" degrees C"));

buf_ptr += addToBuffer(buf_ptr, MAX_JSON_FORMAT_STR, JSON_FORMATS[1]);

dtostrf(t, 3, 2, tmpBuf);

buf_ptr += addToBuffer(buf_ptr, 6, tmpBuf);

h = bme680.readHumidity();

print(F("Humidity = " ));

print(h);

println(F(" %"));

buf_ptr += addToBuffer(buf_ptr, MAX_JSON_FORMAT_STR, JSON_FORMATS[2]);

dtostrf(h, 3, 2, tmpBuf);

buf_ptr += addToBuffer(buf_ptr, 6, tmpBuf);

info(&info);

timestamp = info.time;

print(F("timestamp = "));

println(timestamp);

breakTime(timestamp, tm);

snprintf(TSbuf_ptr, TS_BUF_SIZE, ""%d-%d-%d %d:%d:%d"", tm.Year + 1970, tm.Month, tm.Day, tm.Hour, tm.Minute, tm.Second);

print(F("TSbuf is "));

println(TSbuf);

print(F("TSbuf length is "));

println(strlen(TSbuf));

buf_ptr += addToBuffer(buf_ptr, MAX_JSON_FORMAT_STR, JSON_FORMATS[3]);

buf_ptr += addToBuffer(buf_ptr, TS_BUF_SIZE, TSbuf);

v = peakVoltage;

print(F("Voltage = "));

print(v);

println(F(" Volts"));

buf_ptr += addToBuffer(buf_ptr, MAX_JSON_FORMAT_STR, JSON_FORMATS[4]);

dtostrf(v, 3, 2, tmpBuf);

buf_ptr += addToBuffer(buf_ptr, 6, tmpBuf);

ip = peakCurrent;

print(F("Curr pk = "));

print(ip);

println(F(" Amps"));

buf_ptr += addToBuffer(buf_ptr, MAX_JSON_FORMAT_STR, JSON_FORMATS[5]);

dtostrf(ip, 4, 3, tmpBuf);

buf_ptr += addToBuffer(buf_ptr, 6, tmpBuf);

ia = peakCurrent * highCurrentSamples / totalSamples;

print(F("Curr avg = "));

print(ia);

println(F(" Amps"));

buf_ptr += addToBuffer(buf_ptr, MAX_JSON_FORMAT_STR, JSON_FORMATS[6]);

dtostrf(ia, 8, 6, tmpBuf);

buf_ptr += addToBuffer(buf_ptr, 9, tmpBuf);

buf_ptr += addToBuffer(buf_ptr, MAX_JSON_FORMAT_STR, JSON_FORMATS[7]);

println(buffer);

print(F("buffer length is "));

println(strlen(buffer));

channel_send(&channel, CHANNEL_NAME, buffer, strlen(buffer));



void measureBattery()



float val = 0;

float threshold = 0;

ADCValue = analogRead(A1);

val = ADCValue * ADC_VOLTS_PER_BIT;

if (val > peakCurrent)



peakCurrent = val;



if (peakCurrent > 0)



threshold = peakCurrent / 4.0;

if (val > threshold)



highCurrentSamples++;



if (val <= threshold)



lowCurrentSamples++;





else



lowCurrentSamples++;



if (!down_timer_running(READ_VOLTS_timer))



init_down_timer(READ_VOLTS_timer, VOLTS_SAMPLE_RATE_MS);

ADCValue = analogRead(A0);

val = ADCValue * (ADC_VOLTS_PER_BIT * 4);

if (val > peakVoltage)



peakVoltage = val;







void resetBatteryVars()



highCurrentSamples = 0;

lowCurrentSamples = 0;

peakCurrent = 0;

peakVoltage = 0;



void setup()



int retVal;

int i;

begin(9600);

DBG_PRINTLN(F("Starting"));

begin(HELIUM_BAUD_RATE);

helium_connect(&helium);

channel_create(&channel, CHANNEL_NAME);

parameter.I2CAddress = 0x77;

parameter.sensorMode = 0b01;

parameter.IIRfilter = 0b100;

parameter.humidOversampling = 0b101;

parameter.tempOversampling = 0b101;

parameter.pressOversampling = 0b000;

retVal = bme680.init();

if (retVal != 0x61)



DBG_PRINT(F("BME680 could not be found... Chip ID was 0x"));

DBG_PRINT(retVal, HEX);

DBG_PRINTLN(F(" instead of 0x61"));



init_down_timer(SEND_timer, XMIT_PERIOD_MS);

init_down_timer(READ_VOLTS_timer, VOLTS_SAMPLE_RATE_MS);

resetBatteryVars();



void loop()



measureBattery();

if (!down_timer_running(SEND_timer))



init_down_timer(SEND_timer, XMIT_PERIOD_MS);

DBG_PRINT(F("highCurrentSamples = "));

DBG_PRINTLN(highCurrentSamples);

DBG_PRINT(F("lowCurrentSamples = "));

DBG_PRINTLN(lowCurrentSamples);

sendInfoViaHelium();

resetBatteryVars();



Baue eine Uhr

Baue eine Uhr

Mit der Verwendung eines Arduino k√∂nnen Sie verschiedene Arten von Uhren entwerfen, die an Ihre Bed√ľrfnisse angepasst sind. Zum Beispiel ein sehr einfacher Wecker, den Sie mit Grundkomponenten herstellen k√∂nnen. Alle Komponenten verbinden Sie m√ľssen sich am Schaltplan im Bild orientieren.

Dann m√ľssen Sie die IDE-Umgebung aufrufen und die folgenden Befehle eingeben:

#include <LiquidCrystal.h> //

#include <Button.h> //

#include <DS3231.h> // RTC

int zumbador  =  13 ;

uint8_t hh  =  0 ,  mm  =  0 ,  ss  =  0 ;

uint8_t timerMode  =  0  , setMode = 0 ,  setAlarm = 0 ,  alarmMode = 0  ;

uint8_t alarmaHH  = 0  , alarmaMM  = 0  , alarmaSS = 0 ;

uint8_t timerhh = 0 ,  timermm = 0 ,  timerss  = 0 ;

LiquidCrystal lcd ( 12 ,  11 ,  5 ,  4 ,  3 ,  2 );

DS3231 rtc ( SDA , SCL );

Tiempo t ;

#define DN_PIN 7

#define UP_PIN 8

#define SET_PIN 9

#define ALR_PIN 10

#define PULLUP true

#define INVERT true

#define DEBOUNCE_MS 20

#define REPEAT_FIRST 500

#define REPEAT_INCR 100

//Declare push buttons

Button btnDN(DN_PIN, PULLUP, INVERT, DEBOUNCE_MS);

Button btnUP(UP_PIN, PULLUP, INVERT, DEBOUNCE_MS);

Button btnSET(SET_PIN, PULLUP, INVERT, DEBOUNCE_MS);

Button btnALR(ALR_PIN, PULLUP, INVERT, DEBOUNCE_MS);

enum WAIT, INCR, DECR;

uint8_t STATE;

int count;

int lastCount = -1;

unsigned long rpt = REPEAT_FIRST;

void setup() 

begin(9600);

begin(16,2);

pinMode(buzzer,OUTPUT);

begin();

setCursor(0,0);

print("Welcome Shaqib!");

delay(2000);

clear();



void loop() 

t=rtc.getTime();

hh=t.hour,DEC;

mm=t.min,DEC;

ss=t.sec,DEC;

read();

read();

read();

read();

if(setMode==0 && setAlarm==0 )

tunjukJamTemp();

tunjukTimer();

if(setMode!=0 && setAlarm==0 && alarmMode==0 )delay(100);

if(setMode==1 && setAlarm==0 && alarmMode==0 )lcd.setCursor(7,1);lcd.print(" ");delay(100);tunjukJamTemp();tunjukTimer();

if(setMode==2 && setAlarm==0 && alarmMode==0 )lcd.setCursor(10,1);lcd.print(" ");delay(100);tunjukJamTemp();tunjukTimer();

if(setMode==3 && setAlarm==0 && alarmMode==0 )lcd.setCursor(13,1);lcd.print(" ");delay(100);tunjukJamTemp();tunjukTimer();

if(setMode==4 && setAlarm==0 && alarmMode==0 )tunjukJamTemp();tunjukTimer();stepDown();delay(1000);

if(setMode==0 && setAlarm!=0 && alarmMode==0 )delay(100);

if(setMode==0 && setAlarm==2 && alarmMode==0 )lcd.setCursor(0,0);lcd.print(" ");delay(100);    setCursor(0,0);

if(alarmHH<10)lcd.print("0");

print(alarmHH);lcd.print(":");

if(alarmMM<10)lcd.print("0");

print(alarmMM);lcd.print(":");

if(alarmSS<10)lcd.print("0");

print(alarmSS);lcd.setCursor(0,1);

print("Set Your Alarm");

if(setMode==0 && setAlarm==3 && alarmMode==0 )lcd.setCursor(3,0);lcd.print(" ");delay(100);    setCursor(0,0);

if(alarmHH<10)lcd.print("0");

print(alarmHH);lcd.print(":");

if(alarmMM<10)lcd.print("0");

print(alarmMM);lcd.print(":");

if(alarmSS<10)lcd.print("0");

print(alarmSS);lcd.setCursor(0,1);

print("Set Your Alarm");

if(setMode==0 && setAlarm==4 && alarmMode==0 )lcd.setCursor(6,0);lcd.print(" ");delay(100);    setCursor(0,0);

if(alarmHH<10)lcd.print("0");

print(alarmHH);lcd.print(":");

if(alarmMM<10)lcd.print("0");

print(alarmMM);lcd.print(":");

if(alarmSS<10)lcd.print("0");

print(alarmSS);lcd.setCursor(0,1);

print("Set Your Alarm");

if(setMode==0 && setAlarm==5 && alarmMode==0 )alarmMode=1;setAlarm=0;

setupAlarm();

Alarm(alarmHH,alarmMM);

read();

read();

read();

read();

switch (STATE) 

case WAIT:

if (btnSET.wasPressed())

 setMode = setMode+1;

if (btnALR.wasPressed())

 setAlarm = setAlarm+1;

if (btnUP.wasPressed())

STATE = INCR;

else if (btnDN.wasPressed())

STATE = DECR;

else if (btnUP.wasReleased())

rpt = REPEAT_FIRST;

else if (btnDN.wasReleased())

rpt = REPEAT_FIRST;

else if (btnUP.pressedFor(rpt)) 

rpt += REPEAT_INCR;

STATE = INCR;



else if (btnDN.pressedFor(rpt)) 

rpt += REPEAT_INCR;

STATE = DECR;



break;

case INCR:

if (setMode==1 && setAlarm==0 && alarmMode==0 && timerhh<23)timerhh=timerhh+1;

if (setMode==2 && setAlarm==0 && alarmMode==0 && timermm<59)timermm=timermm+1;

if (setMode==3 && setAlarm==0 && alarmMode==0 && timerss<59)timerss=timerss+1;

if (setMode==0 && setAlarm==2 && alarmMode==0 && alarmHH<23)alarmHH=alarmHH+1;

if (setMode==0 && setAlarm==3 && alarmMode==0 && alarmMM<59)alarmMM=alarmMM+1;

if (setMode==0 && setAlarm==4 && alarmMode==0 && alarmSS<59)alarmSS=alarmSS+1;

STATE = WAIT;

break;

case DECR:

if (setMode==1 && setAlarm==0 && alarmMode==0 && timerhh>0)timerhh=timerhh-1;

if (setMode==2 && setAlarm==0 && alarmMode==0 && timermm>0)timermm=timermm-1;

if (setMode==3 && setAlarm==0 && alarmMode==0 && timerss>0)timerss=timerss-1;

if (setMode==0 && setAlarm==2 && alarmMode==0 && alarmHH>0)alarmHH=alarmHH-1;

if (setMode==0 && setAlarm==3 && alarmMode==0 && alarmMM>0)alarmMM=alarmMM-1;

if (setMode==0 && setAlarm==4 && alarmMode==0 && alarmSS>0)alarmSS=alarmSS-1;

STATE = WAIT;

break;





void stepDown() {

if (timerss > 0) 

timerss -= 1;

 else {

if (timermm > 0) 

timerss = 59;

timermm -= 1;

 else 

if (timerhh > 0) 

timerss = 59;

timermm = 59;

timerhh -= 1;

 else 

for(int i=0;i<30;i++)

setCursor(0,0);

print(rtc.getTimeStr());

setCursor(10,0);

print(rtc.getTemp());

print("C");

read();

if(btnSET.wasPressed())digitalWrite(buzzer,LOW);i=30;else

digitalWrite(buzzer,HIGH);

delay(500);

digitalWrite(buzzer,LOW);

delay(500);



setMode=0;





}

}

void tunjukTimer()

setCursor(0, 1);

print("Timer:");

print(" ");

(timerhh < 10) ? lcd.print("0") : NULL;

print(timerhh);

print(":");

(timermm < 10) ? lcd.print("0") : NULL;

print(timermm);

print(":");

(timerss < 10) ? lcd.print("0") : NULL;

print(timerss);



void tunjukJamTemp()

setCursor(0,0);

print(rtc.getTimeStr());

setCursor(10,0);

print(rtc.getTemp());

print("C");



void Alarm(uint8_t alarmHH,uint8_t alarmMM)

if(alarmMode==1 && alarmHH==hh && alarmMM==mm)

for(int i=0;i<30;i++)

setCursor(0,0);

print(rtc.getTimeStr());

setCursor(10,0);

print(rtc.getTemp());

print("C");

setCursor(0, 1);

print("Timer:");

print(" ");

(timerhh < 10) ? lcd.print("0") : NULL;

print(timerhh);

print(":");

(timermm < 10) ? lcd.print("0") : NULL;

print(timermm);

print(":");

(timerss < 10) ? lcd.print("0") : NULL;

print(timerss);

read();

if(btnALR.wasPressed())digitalWrite(buzzer,LOW);i=30;else

digitalWrite(buzzer,HIGH);

delay(500);

digitalWrite(buzzer,LOW);

delay(500);



alarmMode=0;

setAlarm=0;



void setupAlarm()

if(setMode==0 && setAlarm==1 && alarmMode==0 )

clear();

setCursor(0,1);

print("Set Your Alarm");

setCursor(0,0);

if(alarmHH<10)lcd.print("0");

print(alarmHH);lcd.print(":");

if(alarmMM<10)lcd.print("0");

print(alarmMM);lcd.print(":");

if(alarmSS<10)lcd.print("0");

print(alarmSS);



Arduino Ampel

Durch dieses Projekt k√∂nnen wir Arduino verwenden, um ein Semaphor zu erstellen. Durch die Verwendung einiger Komponenten k√∂nnen wir die Farben Rot, Gelb und Gr√ľn f√ľr Autos in Gegenverkehrsrichtungen beobachten. Dies kann funktionieren, indem zwei Drucktasten verwendet werden, um einen Sensor zu bauen, der sich ein- und ausschaltet und anzeigt, ob sich Autos n√§hern. Wenn also Verkehr herrscht, ist die Ampel rot und wenn nicht gr√ľn.

Rucksackalarm

Rucksackalarm

Wenn Sie verhindern m√∂chten, dass Diebe Ihren Rucksack stehlen, k√∂nnen Sie diesen Alarm verwenden. Die Konstruktion besteht aus einem Arduino-Board, einem 80-Dezibel-Alarm und einem dreiachsigen Beschleunigungsmesser. Der Alarm ert√∂nt in dem Moment, in dem jemand den Rucksack ohne Ihre Genehmigung √∂ffnen m√∂chte. Verwenden Sie das Bild zum Zusammenbauen die Arduino UNO-Karte, der dreiachsige Beschleunigungsmesser, der piezoelektrische Alarm, der Audioanschluss, die 9-V-Batterie, die √úberbr√ľckungskabel und der 9-Volt-Klinkenstecker.

Sobald Sie diesen Schritt ausgef√ľhrt haben, m√ľssen Sie Folgendes in die IDE schreiben:

include <Wire.h>

#include <Adafruit_Sensor.h>

#include <Adafruit_LSM303_U.h>

#include <Adafruit_LSM303.h>

const int sens = 10;

Adafruit_LSM303_Mag_Unified mag = Adafruit_LSM303_Mag_Unified(12345);

void setup(void)



pinMode(13, OUTPUT);

if(!mag.begin())



// There was a problem detecting the LSM303 ... check your connections

digitalWrite(13, HIGH);

delay(500);

digitalWrite(13, LOW);

delay(500);

digitalWrite(13, HIGH);

delay(500);

digitalWrite(13, LOW);

delay(500);

while(1);



// Wait 5 seconds

delay(5000);

// Alert when started

digitalWrite(13, HIGH);

delay(500);

digitalWrite(13, LOW);



// function for getting the sensor value

int getDeg(void)

// Get a new sensor event

sensors_event_t event;

getEvent(&event);

float Pi = 3.14159;

float heading = int((atan2(event.magnetic.y,event.magnetic.x) * 180) / Pi);

if (heading < 0)



heading = 360 + heading;



return heading;



void loop(void)



int oldDeg = getDeg();

delay(1000);

int newDeg = getDeg();

if (newDeg < (oldDeg-sens) && oldDeg != 0 && newDeg != 0) 

// sound the alarm

digitalWrite(13, HIGH);

// Just for debugging

//Serial.println("Triggered");

//Serial.println("");

else if (newDeg > (oldDeg+sens) && oldDeg!= 0 && newDeg != 0) 

// sound the alarm

digitalWrite(13, HIGH);



Arduino Voice Controlled Blinds

Arduino Voice Controlled Blinds

Sie k√∂nnen auch Verwenden Sie ein Arduino-Brett, um die Jalousien in Ihrem Zimmer oder Gesch√§ft zu bewegen. In so kurzer Zeit und mit der richtigen Programmierung k√∂nnen Sie Ihre Jalousien mit einem Sprachsteuerungssystem √ľber Bluetooth √∂ffnen und schlie√üen. Sie ben√∂tigen eine Arduino Nano R3-Karte und alle Komponenten, die Sie auf dem Bild sehen.

Geben Sie dann dieses Programm in die IDE ein:

int brillo  =  0 ;

int fadeAmount  =  5 ;

int led  =  3 ;

int inPin  =  4 ;

int inPin2  =  7 ;

int val2  =  0 ;

int val  =  0 ;

const int  motorPin1   =  11 ;

const int  motorPin2   =  10 ;

const int  motorPin3   =  8 ;

const int  motorPin4   =  9 ;

int estado ;  int  bandera = 0 ;

configuración vacía ()



pinMode ( motorPin1 , SALIDA );

pinMode ( motorPin2 , SALIDA );

pinMode ( motorPin3 , SALIDA );

pinMode ( motorPin4 , SALIDA );

pinMode ( inPin , INPUT );

pinMode ( inPin2 , ENTRADA );

pinMode ( led , SALIDA );

begin(9600);

delay(1000); 

void loop()

Chronometer

Chronometer

Sie k√∂nnen das Arduino-Board konvertieren auf einer einfachen Stoppuhr mit der Verwendung von wenigen Materialien. Dazu sind zwei Drucktasten, einige Widerst√§nde, eine Platte und Kabel erforderlich. Auf diese Weise k√∂nnen Sie dieses n√ľtzliche Tool erstellen, um die Zeit zu bestimmen.

Bauen Sie die Verbindungen gemäß dem Diagramm zusammen, das wir Ihnen zeigen, und schreiben Sie dann diese Programmiercodes in die Arduino-Umgebung:

#include <EEPROM.h>

#define interruptPin 2

#define eeAddress 0

hora de inicio flotante =  0 ;

float endtime = 0 ;

flotador resulttime = 0 ,  oldresulttime = 0 ;

configuración vacía () 

Serial . comenzar ( 9600 );

while ( ! Serial )  

;



Serial . println ( "¬°Las comunicaciones en serie est√°n listas, se√Īor!: .. bip bip" );

attachInterrupt ( digitalPinToInterrupt ( interruptPin ), refreshTime ,  CHANGE );



bucle vacío () 



void refreshTime () 

if ( digitalRead ( interruptPin )) 

hora de inicio = milis ();

print("Start time: "); Serial.println(starttime);

else

if(digitalRead(interruptPin)==LOW)

endtime=millis();

resulttime=endtime-starttime;

print("End time: "); Serial.println(endtime);

print("Result time: "); Serial.println(resulttime);

WhatsNewEeprom();





void WhatsNewEeprom()

println("-----------checking eeprom");

get( eeAddress, oldresulttime );

print("oldresulttime");Serial.println(oldresulttime);

Serial . print ( "tiempo de resultado" ); Serial . println (tiempo de resultado );

if ( resulttime ! = oldresulttime ) 

EEPROM . put ( eeAddress ,  resulttime );

Serial . print ( "----- ¬°Ding! Nuevo tiempo registrado en eeprom:" ); Serial . println (tiempo de resultado );

 m√°s 

Serial . println ( "No se encontró una nueva hora, eeprom no fue perturbado" );



Tweet mit Arduino

Tweet mit Arduino

Mit Arduino k√∂nnen Sie viele Dinge und sogar Ihren Twitter-Account erstaunlich neu nutzen. Wenn Sie richtig programmieren, k√∂nnen Sie diese Funktion aktivieren, indem Sie einen Schalter und ein Relais an eine Karte anschlie√üen. Sie ben√∂tigen ein UNO-Modell, einen 330-Ohm-Widerstand, einen Sparkfun-Knopf, eine 1Sheeld-Platte und Kabel. Um all diese Komponenten zu vereinen, m√ľssen Sie das Bild ber√ľcksichtigen, das wir Ihnen zeigen.

Geben Sie als Nächstes diese Programmiersequenzen in IDE ein:

#define CUSTOM_SETTINGS

#define INCLUDE_TWITTER_SHIELD

#include <OneSheeld.h>

int buttonPin = 12;

int ledPin = 13;

void setup()



/* Start communication. */

begin();

/* Set the button pin as input. */

pinMode(buttonPin,INPUT);

/* Set the LED pin as output. */

pinMode(ledPin,OUTPUT);



void loop()



/* Always check the button state. */

if(digitalRead(buttonPin) == HIGH)



/* Turn on the LED. */

digitalWrite(ledPin,HIGH);

/* Tweet. */

tweet("Uso IPAP como plataforma para aprender");

/* Wait for 300 ms. */

delay(300);



else



/* Turn off the LED. */

digitalWrite(ledPin,LOW);



Lampensystem

Lampensystem

Es gibt einige erweiterte Elemente, mit denen Sie die Gl√ľhbirnen in Ihrem Haus ein- und ausschalten k√∂nnen. S.Sie ben√∂tigen nur wenige Materialien, damit Sie Ihr eigenes Beleuchtungssystem erstellen und mit Ihren H√§nden steuern k√∂nnen. Dazu m√ľssen Sie die Widerst√§nde und Relais wie in der Abbildung gezeigt an die Platine anschlie√üen. Dasselbe m√ľssen Sie auch mit den anderen Komponenten tun.

Wenn Sie alles fertig haben, schreiben Sie die Codes:

#define CUSTOM_SETTINGS

#define INCLUDE_GPS_SHIELD

#define INCLUDE_TEXT_TO_SPEECH_SHIELD

#define INCLUDE_ORIENTATION_SENSOR_SHIELD

#define INCLUDE_VOICE_RECOGNIZER_SHIELD

#define INCLUDE_MIC_SHIELD

#define INCLUDE_DATA_LOGGER_SHIELD

#define INCLUDE_CAMERA_SHIELD

#include <OneSheeld.h>

String openpass¬† =¬† "contrase√Īa" ;

String lockpass  =  "bien entonces" ;

String lighton  =  "luz encendida" ;

String lightoff  =  "luz apagada" ;

String picture  =  "selfie" ;

int Light  =  22 ;

int LockMotor1  =  24 ;

int LockMotor2  =  25 ;

longitud flotante , latitud ;

int lock  =  0 ;  // 0 = cerrado, 1 = abierto

int orientación = 0 ;  // Verifique la orientación del teléfono. 1 = orientación confirmada.

configuración vacía ()



OneSheeld . comenzar ();

pinMode ( Luz , SALIDA );

digitalWrite ( Ligero , ALTO );  // El relé está activo BAJO (ALTO = La luz está apagada inicialmente)

pinMode ( LockMotor1 , SALIDA );

pinMode ( LockMotor2 , SALIDA );

digitalWrite ( LockMotor1 , LOW );

digitalWrite ( LockMotor2 , LOW );

retraso ( 2000 );

Logger . detener ();



bucle vacío ()



while ( 1 ) 

longitud =  GPS . getLongitude ();

latitud =  GPS . getLatitude ();

if ( longitud > = 78.05 &&  longitud <= 87.09  &&  latitud > = 88.60  &&  latitud <= 88.684 )

goto getpass ;

dem√°s

TextToSpeech . say ( "Para habilitar" );

OneSheeld . retraso ( 5000 );



conseguir pase :

TextToSpeech . decir ( "Do the Secret Twist" );

while ( orientación == 0 ) 

if (( OrientationSensor . getX () > 120 ) &&  ( OrientationSensor . getY () > 0 ))

 orientación = 1 ;

romper ;

dem√°s

OneSheeld . retraso ( 2000 );



TextToSpeech . say ( "Bloqueo de apertura" );

digitalWrite ( LockMotor1 , LOW );

digitalWrite ( LockMotor2 , HIGH );

retraso ( 5000 ); // Se necesitan aproximadamente 5 segundos para que la cerradura se abra por completo

digitalWrite ( LockMotor1 , LOW );

digitalWrite ( LockMotor2 , LOW );

retraso ( 1000 );

bloqueo =  1 ;

LogData ();

TextToSpeech . say ( "Bienvenido a IPAP" );

retraso ( 5000 );

OneSheeld . retraso ( 5000 );

while ( 1 ) 

VoiceRecognition . inicio ();

if ( VoiceRecognition . isNewCommandReceived () &&  VoiceRecognition . getCommandAsString () == lighton ) 

// Luces encendidas

TextToSpeech . say ( "Encendido de las luces" );

retraso ( 1000 );

digitalWrite ( Ligero , BAJO );

VoiceRecognition . clearCommand ();

OneSheeld . retraso ( 5000 ); // Este retraso se puede aumentar seg√ļn sus propios requisitos



if ( VoiceRecognition . isNewCommandReceived () &&  VoiceRecognition . getCommandAsString () == lightoff ) 

// Luz apagada

TextToSpeech . say ( "Apagar las luces" );

retraso ( 1000 );

digitalWrite ( Ligero , ALTO );

VoiceRecognition . clearCommand ();

OneSheeld . retraso ( 5000 );



if ( VoiceRecognition . isNewCommandReceived () &&  VoiceRecognition . getCommandAsString () == lockpass ) 

// Bloquear IPAP

TextToSpeech . decir ( "Luces apagadas" );

OneSheeld . retraso ( 2000 );

digitalWrite ( Ligero , ALTO );

OneSheeld . retraso ( 2000 );

// Cerrar cerradura lineal electrónica

TextToSpeech . say ( "Bloqueando" );

digitalWrite ( LockMotor1 , HIGH );

digitalWrite ( LockMotor2 , LOW );

retraso ( 5000 ); // Se necesitan aproximadamente 5 segundos para que la cerradura se cierre por completo

digitalWrite ( LockMotor1 , LOW );

digitalWrite ( LockMotor2 , LOW );

retraso ( 1000 );

bloqueo =  0 ;

LogData ();

OneSheeld . retraso ( 2000 );

TextToSpeech . say ( "Bloqueo completo. ¡Adiós!" );

VoiceRecognition . clearCommand ();

orientación = 0 ;

goto getpass ;

OneSheeld . retraso ( 5000 );



if ( Mic . getValue () > =  80 ) 

TextToSpeech . decir ( "No molestar a los dem√°s" );

retraso ( 2000 );

OneSheeld . retraso ( 5000 );



if ( VoiceRecognition . isNewCommandReceived () &&  VoiceRecognition . getCommandAsString () == imagen ) 

C√°mara . setFlash ( ENCENDIDO );

TextToSpeech . diga ( "C√°mara trasera encendida" );

C√°mara . rearCapture ();

OneSheeld . retraso ( 1000 );

TextToSpeech . diga ( "C√°mara frontal encendida" );

C√°mara . frontCapture ();

retraso ( 2000 );

VoiceRecognition . clearCommand ();

OneSheeld . retraso ( 5000 ); // Este retraso se puede aumentar seg√ļn sus propios requisitos



else 

retraso ( 100 );

OneSheeld . retraso ( 5000 );







else 

OneSheeld . retraso ( 5000 );

goto getpass ;



} // Fin del ciclo ()

void logdata ()



Logger . detener ();

OneSheeld . retraso ( 500 );

Logger . inicio ( "Entrada y Salida" );

if ( lock ==  1 )   // La cerradura se ha abierto

Logger . agregar ( "Entrada / Salida" , "Entrada" );

Logger . log (); 

else   // El bloqueo se ha cerrado

Logger . agregar ( "Entrada / Salida" , "Salida" );

Logger . log (); 

Logger . detener ();

Morse-Emitter

Morse-Emitter

Sie k√∂nnen Ihr Arduino-Entwicklungsboard verwenden, um es in einen Morse-Sender zu verwandeln. Durch Verbinden einer Arduino-Karte mit einer LED und einem 22-Ohm-Widerstand kann eine SOS-Nachricht in Morse-Sprache gesendet werden. Dazu ben√∂tigen Sie ein Arduino UNO-Board, eine generische LED, eine Fotozelle und einen Summer. Sie m√ľssen auch Steckverbinder und Kabel einschlie√üen, um die Elemente zu verbinden.

Wenn Sie alles fertig haben, sehen Sie sich das Bild an, um die Komponenten zu verbinden, und öffnen Sie die Arduino-Programmierumgebung, um Folgendes einzugeben:

const char* MorseTable[] = 

NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,

NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,

NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,

NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,

// space, !, ", #, $, %, &, '

NULL, "-.-.--", ".-..-.", NULL, NULL, NULL, NULL, ".----.",

// ( ) * + , - . /

"-.--.", "-.--.-", NULL, ".-.-.", "--..--", "-....-", ".-.-.-", "-..-.",

// 0 1 2 3 4 5 6 7

"-----", ".----", "..---", "...--", "....-", ".....", "-....", "--...",

// 8 9 : ; < = > ?

"---..", "----.", "---...", "-.-.-.", NULL, "-...-", NULL, "..--..",

// @ A B C D E F G

".--.-.", ".-", "-...", "-.-.", "-..", ".", "..-.", "--.",

// H I J K L M N O

"....", "..", ".---", "-.-", ".-..", "--", "-.", "---",

// P Q R S T U V W

".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--",

// X Y Z [  ] ^ _

"-..-", "-.--", "--..", NULL, NULL, NULL, NULL, "..--.-",

// ' a b c d e f g

NULL, ".-", "-...", "-.-.", "-..", ".", "..-.", "--.",

// h i j k l m n o

"....", "..", ".---", "-.-", ".-..", "--", "-.", "---",

// p q r s t u v w

".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--",

// x y z   ~ DEL

"-..-", "-.--", "--..", NULL, NULL, NULL, NULL, NULL,

;

int dotLength = 50;

int dashLength = dotLength*3;

void setup() 

// put your setup code here, to run once:

pinMode(13, OUTPUT);

begin(9600);



void loop() 

char ch;

if(Serial.available())

ch = Serial.read();

flashDashDot(MorseTable[ch]);

delay(dotLength*2);





void flashDashDot(const char * morseCode)



int i = 0;

while(morseCode[i] != 0)



if(morseCode[i] == '.')

dot();

 else if (morseCode[i] == '-')

dash();



i++;





void dot()



digitalWrite(13, HIGH);

delay(dotLength);

digitalWrite(13, LOW);

delay(dotLength);



void dash()



digitalWrite(13, HIGH);

delay(dashLength);

digitalWrite(13, LOW);

delay(dotLength);

Tastaturblocker

Tastaturblocker

Wie wir bereits gesehen haben, kann Arduino als System zum Schutz verschiedener Arten von Dingen verwendet werden, z. B. zum Sperren der Tastatur Ihres Computers. Du kannst auch Integrieren Sie eine Tastatur in Ihr Board komfortabler arbeiten und mehr Funktionen nutzen. In diesem Projekt ben√∂tigen Sie ein Arduino UNO, einen 1N4148-Halbleiter, Pins, ein 74HC595-Schieberegister, einen Schalter und Kabel. Um all diese Komponenten zu vereinen, m√ľssen Sie sich das Bild ansehen, das wir Ihnen pr√§sentieren.

Danach können Sie die Anweisungen in das IDE-Programm schreiben:

int rowData = 2; // shift register Data pin for rows

int rowLatch = 3; // shift register Latch pin for rows

int rowClock = 4; // shift register Clock pin for rows

int colA = A0;

int colB = A1;

int colC = A2;

int colD = A3;

int colE = A4;

int colF = A5;

int colG = 5;

int colH = 6;

byte shiftRows = B11111111;

long previousMillis = 0;

long interval = 5;

int lastKey = 0;

int keyReset = 0;

int keysPressed = 0;

bool caps = false;

bool rShift = false;

bool lShift = false;

bool shift = false;

bool ctrl = false;

bool spcl = false;

bool alt = false;

bool fn = false;

void setup() 

begin(9600);

pinMode(colA, INPUT_PULLUP);

pinMode(colB, INPUT_PULLUP);

pinMode(colC, INPUT_PULLUP);

pinMode(colD, INPUT_PULLUP);

pinMode(colE, INPUT_PULLUP);

pinMode(colF, INPUT_PULLUP);

pinMode(colG, INPUT_PULLUP);

pinMode(colH, INPUT_PULLUP);

// the outputs needed to control the 74HC595 shift register

pinMode(rowLatch, OUTPUT);

pinMode(rowClock, OUTPUT);

pinMode(rowData, OUTPUT);

updateShiftRegister(B11111111);



void loop() 

unsigned long currentMillis = millis();

if(currentMillis - previousMillis > interval) 

previousMillis = currentMillis;

checkKeyboard();





void updateShiftRegister(byte rows) 

digitalWrite(rowLatch, LOW);

shiftOut(rowData, rowClock, MSBFIRST, rows);

digitalWrite(rowLatch, HIGH);



void checkKeyboard() 

keysPressed = 0;

updateShiftRegister(B11111110);

if (digitalRead(colA) == LOW) 

keysPressed = keysPressed + 1;

if (lastKey != 1) 



if (digitalRead(colB) == LOW) 



if (digitalRead(colC) == LOW) 



if (digitalRead(colD) == LOW) 



if (digitalRead(colE) == LOW) 

fn = true;

 else 

fn = false;



if (digitalRead(colF) == LOW) 



if (digitalRead(colG) == LOW) 



if (digitalRead(colH) == LOW) 



//realiza el mismo procedimiento hasta el lastKey31 o hasta el que t√ļ prefieras programa

keyReset = 0;



}

if ((lShift) || (rShift)) 

shift = true;

 else 

shift = false;



updateShiftRegister(B11111111);

keyReset = keyReset + 1;

if (keyReset > 60) 

lastKey = 0;

keyReset = 0;



if (keysPressed == 0) 

lastKey = 0;



}

Einparkhilfe

Einparkhilfe

Das Ziel dieses Projekts, soll mit Hilfe von LEDs einen Ton- und Lichtmechanismus entwickeln, der die Nähe oder Entfernung von a erkennt Auto, wenn Sie parken möchten. Sie benötigen ein UNO-Modell von Arduino, einen Summer, einen Ultraschallsensor HC-SR04 und Kabel, die die Verbindung der Komponenten gemäß dem von uns gezeigten Diagramm ermöglichen.

Dann m√ľssen Sie diese Sequenzen schreiben, um Ihr Board zu programmieren:

#include <Ultrasonic.h>

Ultrasonic ultrasonic(6,5);

// pin 6 trig , pin 5 echo

const int buzzer = 7;

void setup()

pinMode(buzzer,OUTPUT); // pin buzzer



void loop()

int dist = ultrasonic.Ranging(CM);

if (dist < 100)  distance

tone(buzzer,1000);

delay(40);

noTone(buzzer);

delay(dist*4);



delay(100);

Ein W√ľrfelsimulator

Falls Sie es wollen spiele ein Brettspiel, aber du hast keine W√ľrfel daf√ľr, Sie k√∂nnen Ihre mit einem Arduino erstellen. Mit einem 7-Segment-Display, einer Platte, einer Taste, 220- und 10-k-Widerst√§nden k√∂nnen Sie einen W√ľrfel daraus machen Geben Sie die Zufallszahlen 1 bis 6 an.

Roboterarm

Sie k√∂nnen einen Roboterarm herstellen, der die F√§higkeit, Gegenst√§nde mit einer Pinzette aufzunehmenDar√ľber hinaus k√∂nnen Sie Ultraschallsensoren hinzuf√ľgen, um Kollisionen mit Hindernissen zu vermeiden. Das Erstellen eines Roboterarms mit Arduino ist ein nicht so kompliziertes, aber effektives Projekt.

Flackernde Lichter

Flackernde Lichter

Mit einem Arduino-Board k√∂nnen Sie ein sehr einfaches Programm erstellen, um eine LED zum Blinken zu bringen. Sie ben√∂tigen einen 10k Ohm Widerstand, √úberbr√ľckungskabel von Stecker zu Stecker und eine generische LED. Dann m√ľssen Sie die Komponenten wie im Bild gezeigt verbinden und schlie√ülich die Programmierplattform √∂ffnen.

In dieser Software m√ľssen Sie schreiben:

configuración vacía () 

pinMode ( 13 , SALIDA ) ;



bucle vacío () {

escritura digital ( 13 , ALTA ) ;

retraso ( 1000 ) ;

digitalWrite ( 13 , BAJO ) ;

retraso ( 1000 ) ;

Bewegungswiederholer

Bewegungswiederholer

In diesem Projekt k√∂nnen Sie die Verbindungen √ľben, die Sie zwischen der Arduino-Karte und anderen Komponenten herstellen k√∂nnen. Auf diese Weise haben Sie ein Ger√§t, das Ihre Bewegungen und Gesten reproduziert in der Lage sein, die Lautst√§rke des Lautsprechers zu erh√∂hen oder zu verringern.

Nachdem Sie ein Nano R3-Modell erhalten haben, Ein 8-Pixel-Thermoarray-Sensor TPA81, ein Infrarot-PIR-Aktionssensor HC-SR505, ein generisches Steckbrett, ein 0,96-Zoll-OLED-Bildschirm und √úberbr√ľckungskabel von Stecker zu Buchse. Um all diese Elemente zusammenzusetzen, m√ľssen Sie sich von dem Bild leiten lassen, das wir Ihnen zeigen.

Wenn Sie alles fertig haben, m√ľssen Sie die folgenden Sequenzen in die Arduino-Programmierumgebung schreiben:

#include <Wire.h>

#include <TPA81.h>

// Create new TPA81 instance

TPA81 tpa;

void setup() 

begin(9600);

// You need to begin the Wire library to use TPA81 library

begin();



void loop() 

// Print temperature light

print(tpa.getAmbient());

print(" ");

// Print all temperature point

for (int i = 1; i <= 8; i++)



print(tpa.getPoint(i));

print(" ");



println("n");

delay(500);

Die wichtigsten Arduino-Kits, um zu lernen, wie man Hardware von Grund auf neu entwickelt

Wenn Sie ein Projekt durchf√ľhren m√∂chten, Sie m√ľssen zuerst ein Team haben die Sie als Unterst√ľtzung f√ľr Ihre Arbeit verwenden k√∂nnen.

Aus diesem Grund werden wir eine Liste der am häufigsten verwendeten Arduino-Kits präsentieren, damit Sie Ihre Designs ganz einfach erstellen können:

Arduino Starter Kit f√ľr Anf√§nger K030007

Arduino Starter Kit f√ľr Anf√§nger K030007

Dies ist einer der bekanntesten, da Es ist das offizielle Arduino Starter Kit. Diese Elemente helfen Ihnen, die grundlegenden und technischen Konzepte besser zu verstehen, damit Sie damit in die elektronische Welt eintreten können Kit Sie werden beginnen, Ihre Projekte ohne Fehler zu entwerfen.

Zu den Komponenten, die Sie im Kit finden, geh√∂ren unter anderem eine Arduino UNO Rev3-Karte, verschiedene Widerst√§nde, ein Satz Drucktasten, Anschlusskabel, LED-Leuchten in verschiedenen Farben und Sensoren. Das Handbuch ist in Spanisch und Sie k√∂nnen es f√ľr einen ungef√§hren Preis von 95 ‚ā¨ bekommen.

ELEGOO ES-EL-KIT-008

Die Firma ELEGOO, basierend auf kostenlosem Hardware-Marketing, Machen Sie sich daran, ein Arduino-Starter-Kit f√ľr jeden Entwicklertyp zu erstellen, unabh√§ngig von Ihrem Niveau oder wo Sie sich auf der Welt befinden.

Gewohnheitsm√§√üig gilt als eines der vollst√§ndigsten und effizientesten des Unternehmens, und hat eine ungef√§hre von 200 Materialien f√ľr jedes Projekt. Wenn Sie nicht wissen, womit Sie beginnen sollen keine Sorge!, weil es auch eine Liste mit mehr als 30 Aufgaben enth√§lt. Sie k√∂nnen es f√ľr 30 ‚ā¨ bis 55 ‚ā¨ bekommen, abh√§ngig von der Anzahl der Elemente, die im Kit enthalten sind.

Mega 2560 Starter Kit Ultra

Eine weitere interessante Option, um ein Projekt zu starten Es ist das Arduino Mega 2560 Starter Kit Ultra Kit. Es zeichnet sich durch eine Reihe sehr n√ľtzlicher Elemente aus und verf√ľgt √ľber zus√§tzliche Werkzeuge, die in einfachen Schaltkreisen und bei einfachen Arbeiten verwendet werden k√∂nnen. Wie die beiden vorherigen, Enth√§lt eine Schritt-f√ľr-Schritt-Anleitung auf Spanisch. sowie spezifische Tutorials innerhalb einer CD f√ľr die Entwicklung eines Projekts. Die 220 Elemente k√∂nnen f√ľr rund 50 Euro gekauft werden.

Wenn Sie Fragen haben, lassen Sie diese in den Kommentaren, wir werden Ihnen so schnell wie m√∂glich antworten und es wird auch mehr Mitgliedern der Community eine gro√üe Hilfe sein. Vielen Dank! ūüėČ

Mario Jose

Verfasser: Mario José

Ich habe einen Abschluss in Journalismus und bin auf Nachforschungen spezialisiert. Ich suche die Wahrheit aller Dinge. Jetzt konzentrieren wir uns zu 100% auf Technologie, Computer und das Internet.

Sie könnten auch interessiert sein

[Total: 0   Average: 0/5]

Leave a Comment