Keresés

Részletes keresés

heeegany Creative Commons License 2018.03.09 0 0 3363

Igen, valóban elég sz.r...

Na de most hátha jó lesz:


Előzmény: Vargham (3362)
Vargham Creative Commons License 2018.03.09 0 1 3362

Szerintem kerüld el ezt a képmegosztó szolgáltatást...

Előzmény: heeegany (3361)
heeegany Creative Commons License 2018.03.07 0 0 3361
heeegany Creative Commons License 2018.03.07 0 0 3360

Sziasztok!

Elég rég tervezek már egy elektronikus műszeregységet motorra.  A fő probléma hogy a mikrovezérlőkhöz nem igazán értek.  De egy program és kapcsolási rajz alapján nem gond megcsinálni.  Ezért keresnék valakit aki ezt a részét meg tudná csinálni.

Szóval a tervek:
Az alap egy Arduino nano vagy mini. Hogy melyik azt még nem döntöttem el.  De ez talán annyira nem is lényeges pont.  A műszeregységen egy Nokia 5110-es kijelző lenne, ennek a tetején jelenítené meg a sebességet, valamint alatta 1 vagy 2 sorban és akár 2 oszlopban a hőmérséklet a fordulat és a kilométer adatok(ezeket nyomógombokkal lehetne léptetni).  
A sebességhez optikai jeladóval venné a jelet a kis lánckeréktől, a hőmérők pedig 2 vezetékes PT100-asok(2 vagy 3db. Egy a levegő, egy a motorhő és egy az olajhőnek).  A fordulatot még nem tudom. Az indukciós jeladós CDI gyújtás, ott a jeladóról le lehet venni a jelet. De még nem vagyok biztos abban hogy kell fordulatszámmérés.
Az elektronika folyamatosan kaphat áramot. Viszont ha a gyújtáskapcsolóval kapcsolt körön nem kap jelet akkor alvó módba kellene kapcsolnia.(kijelzőn csak az össz kilométer kell hogy látható legyen olyankor. Nem hátrány ha ezt az alvó módot késeltetve kapcsolja be)
Valamint egy LED a kijelző mellett ami világítani kezd ha motor vagy az olajhő megadott érték fölé megy. 

Úgy nagyjából ennyi.
Ami viszonyt még bonyolít a dolgon:
Az össz megtett kilométert valahogy el kell tárolnia akkor is ha egyáltalán nem kap áramot(ha télen kiszedem az aksit ne nullázódjon le az egész).  A nullázható kilométer persze nem számít ha elvész ilyen esetben.
A kerékméret és az áttétel változhat, valamint be is kell kalibrálni, szóval úgy lenne jó ha a programban egy értéket átírva ez megoldható lenne.
Én 2 nyomógombra gondoltam. Ezekkel lehetne léptetni a kijelzőn az adatokat valamint (mondjuk hosszan nyomva őket) nullázni a nullázható kilométer állást(persze ezt csak akkor ha a gyújtás is rá van adva. Tehát alvó módban nem. )
A hőmérők értékeit is jó lenne kalibrálhatóvá tenni(némelyiknél sok vezeték, és sok csatlakozó lenne). Valamint az olaj és a motorhő riasztási értékét(ahol a LED világítani kezd) is könnyen átírhatóra kellene.

Aztán, hogy tovább bonyolítsam a dolgokat(bár nem tudom hogy ez mennyit bonyolít): 
A zavarszűrés miatt az optikai jeladó, a hőmérők jeleit(már ha analóg jelet lehet egyáltalán), a fordulatszám jeladó jelét, és talán a kapcsolókat optikai kapukon keresztül kellene bevinni a vezérlőig.



Még valami, az optikai kapuk azért fontosak mert volt már egy ilyen projektem. Bár az nem arduino alapú és jópár éve készítette egy ismerősöm, de amint be lett indítva a motor megzavarodott az egész. Végül megdöglött a mikrovezérlő is...  Bár azóta már jóval modernebb a motor elektromos rendszere. De biztosra akarok menni.  Nehogy azon a pár méter vezetéken összeszedjen valamit.

Úgy egyenlőre ennyi jut eszembe. Nem tudom hogy mennyire megvalósítható így ahogy elgondoltam és azt sem hogy mennyire bonyolult(bár biztosan nem egyszerű :D )
De ötleteket és tanácsokat szívesen veszek!

Végül pár kép az előző, döglött projektről:
(azért ezt szeretném jóval igényesebben megcsinálni. Azóta van 3D-s nyomtatóm és a munkahelyemen lézervágó)
Visszajelző LED-ek a homok szórt üveg matt részei alatt voltak, így szépen bevilágították az egészet. 
[URL=http://www.kepfeltoltes.eu/view.php?filename=748P2260093.jpg][img]http://www.kepfeltoltes.eu/images/hdd1/2018/03/07/748P2260093.jpg[/img][/URL]
[URL=http://www.kepfeltoltes.eu/view.php?filename=144P2260085.jpg][img]http://www.kepfeltoltes.eu/images/hdd1/2018/03/07/144P2260085.jpg[/img][/URL]

Ja, ezt is kb ugyanekkora helyre és formába kell bezsúfolnom :D (szóval amit lehet SMD-vel kell megoldanom)

Dzsudimano Creative Commons License 2018.03.05 0 0 3359

Köszönöm szépen ,így már értem!

Előzmény: Vargham (3358)
Vargham Creative Commons License 2018.03.05 0 0 3358

A mikrokontrolleren van egy kicsike program, úgy hívják bootloader. Minden intdításkor ez indul el. Ha ilyenkor kap egy új programot a soros porton, akkor azt felprogramozza, ha nem kap újat, akkor elindítja az előzőt. Amikor új volt az Arduinod, akkor csak a bootloader volt rajta, így bármikor tudtál rá új programot tölteni. Most, hogy már fut rajta egy program, resetelni kell, hogy újra a bootloader indulojn el.

Előzmény: Dzsudimano (3357)
Dzsudimano Creative Commons License 2018.03.04 0 0 3357

Köszönöm szépen!Próbáltam egy párszor ,de nem jött be azután még utána néztem lényeg,hogy akkor kell nyomni a resetet amikor kiírja a feltöltendő fájl méretét így már jó lett!Csak az az érdekes,hogy az első feltöltés enélkül is sikerült mind két minire ,de ezek szerint a további feltöltések csak így mennek.

Előzmény: granov (3356)
granov Creative Commons License 2018.03.04 0 0 3356

Fordítás alatt a cél arduinon nyomj egy resetet. Van egy ilyen nano-m amire csak így tudok feltölteni.

Előzmény: Dzsudimano (3354)
granov Creative Commons License 2018.03.04 0 0 3355

Sikerült életre keltenem az A6 gsm modult.

Azonban a gprs kommunikáció AT parancsokkal megakadtam.

A gyári parancskészletet megtaláltam, de nem igazán tudom, hogy mi kellene belőle.

Odáig szeretnék eljutni, hogy egy thingspeak csatornára adatot tudjak küldeni.

Dzsudimano Creative Commons License 2018.03.04 0 0 3354

Sziasztok !Nagyon kezdó vagyok az arduino témába.A problémám a követező arduino miniprora feltöltöttem egy programot egy másik köztes arduinoval (Tx-tx,Rx-rx,a köztes arduino resetje testen) a feltöltés sikerült csak azután kiderült,hogy módosítani kell a programon ezt meg is tettem ,a rajta lévő soft fut,de újabb softot nem tudok rá az előző módszerrel tenni ,még a kis példákat se lehet rá tenni.Mit tanácsoltok?

Prof Creative Commons License 2018.02.28 0 0 3353

A setup()-ban lévő int laststate... elé nem kell az int.

Előzmény: mikroferike (3349)
Prof Creative Commons License 2018.02.28 0 0 3352

Szia,

A kód elvileg helyes, gyakorlatilag inkább egy rotary encoder könyvtárat keresnék, ami működik rendesen. Plusz enkódert illik inkább megszakításból kezelni, nem pedig ezzel a módszerrel.
Google arduino rotary encoder with interrupt.

Előzmény: mikroferike (3349)
ruzsa janos Creative Commons License 2018.02.24 0 0 3351

http://cyaninfinite.com/tutorials/moving-the-28byj-48-stepper-motor/

Nos, iltt megtalálod a kiválasztott motor működését. Van ugye 1 közös vezeték, ez plusz 5 voltot kap, és 4 darab a 4 tekercshez.

Ha egyetlen tekercset táplálsz be (küldesz ki rá GND-t, testet a végfok IC-n keresztül, akkor a toro mágnese "odaforog" és beáll a tekecs irányába (több póluspárja van, de ez mot mindegy).

Ha most a következő tekercs re IS ráteszed a testet, akkor beáll a kettő közé. Most leveszed az elsőről a testet, továbblép fél osztást.... stb stb.

Vagyis tulajdonképpen 4 bit  8 féle kombinációját küldöd ki rá. Ez annyit jelent, hogy valamelyik portra 4 bitet erre használsz, és egymás után írod ki a kombinációkat. Ha ezt gyorsabban teszed, akkor gyorsabban forog. ha túl gyorsan, akkor "leszakad", nme tudja követni.

Viszontha eegáns megoldást akarsz, a végállásokra kapcsolókat teszel.

Amúgy ha felültközik, nem lesz baja, már ha a meghajtott ajtó zsanérja kibírja a motor + hajtómű nyomatékát. Csak zümmögni fog.,  

Előzmény: Vala ki (3350)
Vala ki Creative Commons License 2018.02.12 0 0 3350

Sziasztok

Azt találtam ki, hogy ezzel a motorral oldanám meg a leendő lézer gravírozóm burkalat ajtajának a nyitását. Az lenne a cél, hogy az arduino (UNO vagy nano) a 2 végpont közelében lassabban mozduljon. Egyfajta finom mozgást lehetne létrehozni. Be kellene azt is állítani hogy mennyi idejig működjön a motor (vagy hogy hány lépést tegyen meg?) így elkerülendő a túlnyitás.

ű

Hogy kellene ezt megvalósítani? Hogy kezdjek hozzá? (Sose volt még dolgom arduinoval, szóval nagyon-nagyon kezdő vagyok)
Tudnátok segíteni?

mikroferike Creative Commons License 2018.02.09 0 0 3349

Sziasztok!

 

Most ismerkedem az Arduinokkal és már meg is akadtam. Van egy Mega 2560-as amivel egy inkrementális enkódert szeretnék számoltatni, de sajnos olyan mintha lassú lenne a jelfeldolgozás.Minél gyorsabban forgatom az encodert, annál kevesebb lépést számol 1 körre. Az enkóder piros +5, fekete gnd, a két jel kábel meg a 20,21 es lábon egy-egy 10k ellenállással a pozitívra húzva. Nagyon megköszönném, ha rávilágítanátok, hol a gond. Itt a kód, amivel próbálkozom:

 

int a=20;
int b=21;
int szamlalo;
int state;
int laststate;

void setup() {
int laststate=digitalRead(a);
Serial.begin(9600);

}

void loop() {
// put your main code here, to run repeatedly:
int state=digitalRead(a);
if (state!=laststate) {
if (digitalRead(b)!=state) {
szamlalo++;
}
else {
szamlalo--;
}
laststate=state;
kiir();
}
}

void kiir() {
Serial.println(szamlalo);
return;
}

 

Előre is köszi mindenkinek!

Brandyman Creative Commons License 2018.02.05 0 0 3348

És hogy a kód se maradjon le: (mondjuk ezt a "namespace" dolgot nem igazán értem...) 

 

#include <stdio.h>
#include <DS1302.h>

 

namespace {

 

const int kCePin = 37; // Chip Enable
const int kIoPin = 38; // Input/Output
const int kSclkPin = 39; // Serial Clock

 

DS1302 rtc(kCePin, kIoPin, kSclkPin);

 

String dayAsString(const Time::Day day) {
switch (day) {
case Time::kSunday: return "Sunday";
case Time::kMonday: return "Monday";
case Time::kTuesday: return "Tuesday";
case Time::kWednesday: return "Wednesday";
case Time::kThursday: return "Thursday";
case Time::kFriday: return "Friday";
case Time::kSaturday: return "Saturday";
}
return "(unknown day)";
}

 

void printTime()

{

Time t = rtc.time();

const String day = dayAsString(t.day); char buf[50];
snprintf(buf, sizeof(buf), "%s %04d-%02d-%02d %02d:%02d:%02d", day.c_str(), t.yr, t.mon, t.date, t.hr, t.min, t.sec);
Serial.println(buf);
}
} // namespace

 

void setup()

{
Serial.begin(9600);
rtc.writeProtect(false);
rtc.halt(false);

Time t(2013, 9, 22, 1, 38, 50, Time::kSunday);

rtc.time(t);
}

 

void loop()

{
printTime();
delay(1000);
}

Brandyman Creative Commons License 2018.02.05 0 0 3347

Hello, 

 

DS1302-t olvasok ki másodpercenként, és ez jön fel a soros monitoron...

 

Sunday 2013-09-22 01:38:51
(unknown day) 2000-02-80 00:00:85
Sunday 2013-09-22 01:38:53
(unknown day) 2000-02-80 00:00:85
Sunday 2013-09-22 01:38:55
(unknown day) 2000-02-80 00:00:85
Sunday 2013-09-22 01:38:57
(unknown day) 2000-02-80 00:00:85
Sunday 2013-09-22 01:38:59
(unknown day) 2000-02-80 00:00:85
Sunday 2013-09-22 01:39:01
(unknown day) 2000-02-80 00:00:85
Sunday 2013-09-22 01:39:03
(unknown day) 2000-02-80 00:00:85
Sunday 2013-09-22 01:39:05
(unknown day) 2000-02-80 00:00:85
Sunday 2013-09-22 01:39:07
(unknown day) 2000-02-80 00:00:85
Sunday 2013-09-22 01:39:09
(unknown day) 2000-02-80 00:00:85
Sunday 2013-09-22 01:39:11
(unknown day) 2000-02-80 00:00:85
Sunday 2013-09-22 01:39:13

 

Egyszer jó, egyszer nem jó...

 

Ötlet? 

granov Creative Commons License 2018.02.05 0 0 3346

Jó kérdés. Egy ilyen videót láttam, ahol egy terminal progin keresztül állította be a modult.

De mintha nem az USB-n keresztül állította volna be????

Mintha egy ESP8266 programozót használt volna.

 

A terminál programjaim nem látják USB-n keresztül a modult.

 

Leírnád, hogyan kell, mik az alapértékek?

Köszi

Grano

Előzmény: barkócza (3345)
barkócza Creative Commons License 2018.02.05 0 0 3345

Bocs, de hadd kérdezzem meg az alap dolgokat: Jelszintek rendben vannak? Stopbitek száma, paritásbit jól be van állítva?

Előzmény: granov (3344)
granov Creative Commons License 2018.02.04 0 0 3344

Sziasztok!

 

Egy A6 GSm modullal küzdök. Nem tudok előrelépni. UART RX/TX és VCC5V/GND van a mega-ra kötve.

115200baud-on jön válasz de az "AT" parancsra nem jön az OK válasz, csak vmi értelmetlen karakter pár.( ASCII 93 és 255)

Mi lehet a bibi?

 

Ennyi csak a kód:

 

void setup()
{
Serial.begin(9600);
Serial1.begin(115200);
}

void loop()
{

Serial1.print("AT");
delay(2000);
Serial.print("115200 b/s: ");
while(Serial1.available()!=0) Serial.println(Serial1.read());
Serial.println(" ");
delay(2000);
Serial.read();
}

 

nagyharcos Creative Commons License 2018.01.27 0 0 3343

Sziasztok!

A DS3231 RTC eepromját (AT24C32) szeretném használni, de még soha nem volt dolgom semmiféle eeprommal, így elég láma vagyok.

A feladat az volna, hogy 50-60db uint32_t változót (Nextion HMI miatt a number-eket így kell deklarálni - ezért van ez a pazarlás) kellene elmentenem gombnyomásra az eepromba (akár egyszerre az összeset vagy külön címenként - nem tudom mi a célravezetőbb). A változók értékei egyébként csak 0-255 közötti egész számok lehetnek (tehát elméletben elég egy byte egy változónak, ha jól értem) . Egy-egy változónak fix helyen!? kellene lennie, hogy esetleges újraindítást követően visszaolvasásakor megtalálja és felül tudja írni az elmentett értékkel a deklarált változó tartalmát. Mivel viszonylagosan ritkán (max napi 1-2 felülírási ciklus lenne, így az eeprom élettartama (100.000 ciklus) nem meghatározó.

 

Így leírva nem is hangzik bonyolultnak, de mégis....

Hogy álljak neki? 

Elgondolkodtam esetleg külső külön eeprom (24LC256) használatán is. A címzésnél lehet ütközés ebben az esetben (RTC 0x68 ; 24LC256 0x50)?

Minden választ köszönök!

Törölt nick Creative Commons License 2018.01.14 0 0 3342

Ds3231 library innen származik:

 

http://www.rinkydinkelectronics.com/library.php?id=73

 

Sokat segít, ha teljesen elölről telepítesz mindent, kerülve a kettős könyvtárakat.

Gond nélkül fordult LoRa32u4 lapra a kód.

Előzmény: tomi8822 (3337)
Brandyman Creative Commons License 2018.01.14 0 0 3341

Bár most, hogy megpróbáltam lefordítani; nekem sem fordult le :-) 

Brandyman Creative Commons License 2018.01.14 0 0 3340

Nekem van ezzel az RTC-vel egy működő verzióm, ahol I2C-n keresztül LCD-re írja ki a dátumot/órát/hőfokot. 

Remélem tudod használni a részeit! 

 

--------------------------------------

 

#include <Wire.h>
#include <ds3231.h>
#include <LiquidCrystal_I2C.h>
#define BUFF_MAX 128

//****************************************Define I2C LCD Display *********************************
#define I2C_ADDR 0x27 // Define I2C Address for the PCF8574T
//---(Following are the PCF8574 pin assignments to LCD connections )----
// This are different than earlier/different I2C LCD displays

#define Rs_pin 0
#define Rw_pin 1
#define En_pin 2
#define BACKLIGHT_PIN 3
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7

#define LED_OFF 0
#define LED_ON 1

/*-----( Declare objects )-----*/
LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
//************************************ END LCD DISPLAY *******************************************

uint8_t time[8];
char recv[BUFF_MAX];
unsigned int recv_size = 0;
unsigned long prev, interval = 1000;

void setup()
{
Serial.begin(9600);
Wire.begin();
DS3231_init(DS3231_INTCN);
memset(recv, 0, BUFF_MAX);
Serial.println("GET time");

//**************************LCD Setup********************************
lcd.begin (16,2); // initialize the lcd
// Switch on the backlight
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(LED_ON);
//***************************END LCD Setup********************************

Serial.println("Setting time");
setTheTime("304022129022016"); // ssmmhhWDDMMYYYY set time once in the given format

}

void loop()
{
char tempF[6];
float temperature;
char buff[BUFF_MAX];
unsigned long now = millis();
struct ts t;
// show time once in a while
if (now - prev > interval){
DS3231_get(&t); //Get time
temperature = DS3231_get_treg(); //Get temperature
dtostrf(temperature, 5, 1, tempF);

lcd.clear();
lcd.setCursor(0,0);

lcd.print(t.mday);

printMonth(t.mon);

lcd.print(t.year);

lcd.setCursor(0,1); //Go to second line of the LCD Screen
lcd.print(t.hour);
lcd.print(":");
if(t.min<10)
{
lcd.print("0");
}
lcd.print(t.min);
lcd.print(":");
if(t.sec<10)
{
lcd.print("0");
}
lcd.print(t.sec);

lcd.print(' ');
lcd.print(tempF);
lcd.print((char)223);
lcd.print("C ");
prev = now;
}

}

void setTheTime(char *cmd)
{
struct ts t;

// ssmmhhWDDMMYYYY set time

t.sec = inp2toi(cmd, 0);
t.min = inp2toi(cmd, 2);
t.hour = inp2toi(cmd, 4);
t.wday = inp2toi(cmd, 6);
t.mday = inp2toi(cmd, 7);
t.mon = inp2toi(cmd, 9);
t.year = inp2toi(cmd, 11) * 100 + inp2toi(cmd, 13);
DS3231_set(t);
Serial.println("OK");
}

void printMonth(int month)
{
switch(month)
{
case 1: lcd.print(" January ");break;
case 2: lcd.print(" February ");break;
case 3: lcd.print(" March ");break;
case 4: lcd.print(" April ");break;
case 5: lcd.print(" May ");break;
case 6: lcd.print(" June ");break;
case 7: lcd.print(" July ");break;
case 8: lcd.print(" August ");break;
case 9: lcd.print(" September ");break;
case 10: lcd.print(" October ");break;
case 11: lcd.print(" November ");break;
case 12: lcd.print(" December ");break;
default: lcd.print(" Error ");break;
}
}

Előzmény: tomi8822 (3337)
tomi8822 Creative Commons License 2018.01.14 0 0 3339

Ez az, uno-ra akarom feltölteni.

 

#include <DS3231.h>

int Relay0 = 13;
int Relay1 = 5;
int Relay2 = 6;
int Relay3 = 10;

DS3231 rtc(SDA, SCL);
Time t;

const int OnHour0 = 17;
const int OnMin0 = 30;
const int OffHour0 = 17;
const int OffMin0 = 31;
const int OnHour1 = 12;
const int OnMin1 = 26;
const int OffHour1 = 12;
const int OffMin1 = 27;

void setup() {
Serial.begin(115200);
rtc.begin();
pinMode(Relay0, OUTPUT);
digitalWrite(Relay0, LOW);
pinMode(Relay1, OUTPUT);
digitalWrite(Relay1, LOW);
pinMode(Relay2, OUTPUT);
digitalWrite(Relay2, LOW);
pinMode(Relay3, OUTPUT);
digitalWrite(Relay3, LOW);
}

void loop() {
t = rtc.getTime();
Serial.print(t.hour);
Serial.print(" hour(s), ");
Serial.print(t.min);
Serial.print(" minute(s)");
Serial.println(" ");
delay (1000);

if(t.hour == OnHour0 && t.min == OnMin0){
digitalWrite(Relay0,HIGH);
Serial.println("LIGHT ON");
}

else if(t.hour == OffHour0 && t.min == OffMin0){
digitalWrite(Relay0,LOW);
Serial.println("LIGHT OFF");
}
if(t.hour == OnHour1 && t.min == OnMin1){
digitalWrite(Relay1,HIGH);
Serial.println("LIGHT ON");
}

else if(t.hour == OffHour1 && t.min == OffMin1){
digitalWrite(Relay1,LOW);
Serial.println("LIGHT OFF");
}
}

Előzmény: Vargham (3338)
Vargham Creative Commons License 2018.01.14 0 0 3338

nem sikerült feltöltenem

Lefordítani nem sikerült.

 

A hiba oka: A DS3231 osztálynak nincs olyan konstruktora, ami 2 paramétert kérne. Honnan vetted a példát, ami szerint meg kell neki adni az SDA és az SCL lábakat?

Előzmény: tomi8822 (3337)
tomi8822 Creative Commons License 2018.01.14 0 0 3337

Szia köszönöm.

Nekem uno van ,valamiért nem sikerült feltöltenem, ezt dobja hibának:

 

sketch_jan14c:8: error: no matching function for call to 'DS3231::DS3231(const uint8_t&, const uint8_t&)'

DS3231 rtc(SDA, SCL);

^

C:UserstomiDocumentsArduinosketch_jan14csketch_jan14c.ino:8:20: note: candidates are:

In file included from C:UserstomiDocumentsArduinosketch_jan14csketch_jan14c.ino:1:0:

C:UserstomiDocumentsArduinolibrariesDS3231/DS3231.h:64:3: note: DS3231::DS3231()

DS3231();

^

C:UserstomiDocumentsArduinolibrariesDS3231/DS3231.h:64:3: note: candidate expects 0 arguments, 2 provided

C:UserstomiDocumentsArduinolibrariesDS3231/DS3231.h:60:7: note: constexpr DS3231::DS3231(const DS3231&)

class DS3231 {

^

C:UserstomiDocumentsArduinolibrariesDS3231/DS3231.h:60:7: note: candidate expects 1 argument, 2 provided

C:UserstomiDocumentsArduinolibrariesDS3231/DS3231.h:60:7: note: constexpr DS3231::DS3231(DS3231&&)

C:UserstomiDocumentsArduinolibrariesDS3231/DS3231.h:60:7: note: candidate expects 1 argument, 2 provided

sketch_jan14c:9: error: 'Time' does not name a type

Time t;

^

C:UserstomiDocumentsArduinosketch_jan14csketch_jan14c.ino: In function 'void setup()':

sketch_jan14c:22: error: 'class DS3231' has no member named 'begin'

rtc.begin();

^

C:UserstomiDocumentsArduinosketch_jan14csketch_jan14c.ino: In function 'void loop()':

sketch_jan14c:34: error: 't' was not declared in this scope

t = rtc.getTime();

^

sketch_jan14c:34: error: 'class DS3231' has no member named 'getTime'

t = rtc.getTime();

^

exit status 1
no matching function for call to 'DS3231::DS3231(const uint8_t&, const uint8_t&)'

 

Előzmény: Törölt nick (3304)
Prof Creative Commons License 2018.01.13 0 0 3336

Ehhez már redundancia kell. Nem is kicsi.

Előzmény: Brandyman (3335)
Brandyman Creative Commons License 2018.01.13 0 0 3335

Néztem a watchdog beállításait/paramétereit. 

Jól megválasztott időalat, és reset a buli végén, vagy ha valami elhúzódik. 

Szerintem menni fog. 

 

A tápre teszek majd a végső nyák-on szűrés, a bementekre nem hiszem, hogy nagygon kellene. Optokapu van, az úgy előtétezve, hogy van még tartalék, ha megszaladna (kicsit) a bemeneti feszültség, ha elpukkantja a gazdája, akkor foglalatos; csere és mehet tovább. 

 

Kifagyás esetén jó lenne a kimeneteket tartani, - kiindulva abból, hogy talán nem történik nagy változás a bementeken az alatt a néhány másodperc alatt, amíg a rendszer újraindul, - de attól tartok, hogy watchdog reset esetén törlődnek a kimenetek.... Persze vissza alehet állítani az utolsó állapotot, de akkor is lesz benne a rövid kiesés... Lehet, hogy a kimenetre tárolót kellene tenni, és ha kiesik alóla a Nano, akkor is marad minden vezérelve, ahogy volt. 

Ezt még kitalálom. 

 

Köszönöm a tippeket! 

Előzmény: Prof (3334)
Prof Creative Commons License 2018.01.13 0 0 3334

Szia!

A beépített watchdogot nagyon okosan kell paraméterezni, hogy ideálisan működjön, de nyilván megoldás. Én a külsők híve vagyok.
Zavarszűrés mindennek az alkalmazási körülmények föggvényében: táp mindenképp, bemenetek, ha arra szükség van (szűrés, védelem).
Az áramszünetes dologra Vargham írt jó megoldást, de még ha nem is akarod pontosan ugyanonnan folytati, akkor is lehet egy állapot, amit az aktuális bemenetek vagy az idő vagy valamely más paraméterek alapján beállít.

 

Előzmény: Brandyman (3325)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!