HadrDisk
Vytvořené odpovědi
-
AutorPříspěvky
-
posjirka
Účastníkjá jsem si dělal RTC modul (protože mi z ebaye 3x nepřišel) a taky používám DS1307.
Odběr jsem neměřil, ale te’d byl bez napájení přes 2 měsíce, a na tvůj dotaz jsem se rozhodl jej vyzkoušet. Funkguje a má odchylku 10 minut. za mě dobrý. napájení mám starší baterii CR2032 ze starého PC (takže před smrtí)posjirka
Účastníkmusím přiznat, že mě te´d nic nenapdá ….
Vojtěch Vosáhlo
ÚčastníkTo je tou konverzí, itoa prostě nezachová čárku. Pokud vám nevadí knihovny, zkuste třeba toto: https://playground.arduino.cc/Main/FloatToString
fundump
Účastníkhttp://support.iteadstudio.com/support/discussions/topics/1000068252
Tuto to tiez riesia no presne ako on pise tiez mi to vyhodi tuto chybu:
‚ftoa‘ was not declared in this scope.A teplotu napr. cez serial monitor zobrazi napr 22,38 ale na Nextion display zobrazi iba 22
Vojtěch Vosáhlo
ÚčastníkEdit: Sorry za sprintf, to neni ono 😉 ty posledni řádky ignoruj
Vojtěch Vosáhlo
ÚčastníkUrčitě by měl být použit ftoa() vzhledem k tomu že u int nemůžete nikam naprat desetinou čárku (aspoň co já vim). Co to vypíše? Např. teplota je 20.38C
Zobrazí to jen 20C nebo 2038C nebo vubec nic?Mimo toto můžete zkusit itoa/ftoa nahradit sprintf. Tady je doku. https://www.tutorialspoint.com/c_standard_library/c_function_sprintf.htm
Je tam mnoho dostupných formátů tak jich pár zkuste.
fidos
Účastníkna recieveru taky porad stejny, při první prijmuti signalu je na pinu 13 porad napeti cca. 5V
fidos
Účastníkzmeneno a porad stejny, tak nevim. Jinak sem meril napeti na pinu pro ir ledku a bylo tam jenom asi 0,05V při sepnuti, není to nejak malo?
fundump
ÚčastníkDobry den prajem.
Ja som zacal pouzivat tieto Nextion displaye, objednavam ich od vyrobcu a cenovo su rovnako na tom ako z ciny (ebay …)
Vela veci este neviem ale kazdopadne mi to bezi na seriovej komunikacii o rychlosti 115200.
Ked som skusal pomalsiu rychlost, tak mi to nefungovalo spravne. Tak neviem ci som aspon trochu poradil.
S pozdravom fundump
posjirka
Účastníkds18b20 se dá pořídit i ve vodě odolném provedení, stejně jako většina jiných čidel. LM35 je sice analog a rád používám DS18b20 ale okolo 0st.C je takový podivný jev/vlastnost. Ono do 127 st.c pocítá lineárně nahoru, pak skočí na -55st.C a počítá dál do 0st.C. Navíc s přibývající vzdáleností musíš upravit pull-up odpor, jinak není čidlo spolehlivé (nad cca 10-20m místo 4k7 použít 2k9 atd…) asi bych se přiklálně k LM35 i za cenu analog. rušení.
posjirka
ÚčastníkMnohem jednodušší by bylo použití 3-bodového provedení:
http://marcomplet.cz/docs/Belimo/belimo_cm24-L_R.pdf
Stačí relé/tranzistory řízené arduinem pro spínání 24V.
Zpětná vazba by mohla být opět pomocí potenciometru na hřídeli servopohonu.
úhel sepnutí se řeší pomcí doby sepnutí příslušné cívky. pokud chceš otočit servopohon o 90st. sepneš cívku na 75s. Doraz je řešen automaticky, takže servopohon by se neměl nikdy protočit. Navíc pro regulaci je mnohem vhodnější přidat/ubrat, než vypočtávát novou hodnotu PWM napětí.krcmar.tomas@gmail.com
Účastníkdiky moc,
vyrabim automatickou regulaci horeni v krbu, take bu bude krasne teplo a nebo velky ohnostroj 🙂
ja jsem SW ale HW levy, tak zkusim na netu pohledat ten pomocny regulovatelu zdroj
diky !!
Aleš
ÚčastníkJednoduše. Do Y pouštíš 0-10V, a klapka se otevírá od 0 do 100%. Takže když do Y pustíš 3V, otevře se klapka na 30%. Zpětné hlášení polohy funguje tak, že podle otevření klapky je na tom výstupu napětí 2-10V podle úhlu otevření klapky. Připojení k Arduinu bude trochu složitější. Budeš muset vyrobit pomocný regulovatelný zdroj 0-10V ovládaný PWM z Arduina.
K čemu to má sloužit?posjirka
Účastník1. používej prosím funkci CODE (tlačítko nad textovým oknem odpovědi) jinak je ten kod špatně čitelný.
2. já bych o trochu pozměnil kod pro reciever:#include <multiCameraIrControl.h> #include <VirtualWire.h> Canon D5(11); void setup() { vw_set_ptt_inverted(true);vw_set_rx_pin(12); vw_setup(2000);vw_rx_start();unsigned int data = 0; pinMode(13, OUTPUT); pinMode(11, OUTPUT); } void loop(){ uint8_t buf[VW_MAX_MESSAGE_LEN];uint8_t buflen = VW_MAX_MESSAGE_LEN; if (vw_get_message(buf, &buflen)){ if(buf[0]==’1′){ digitalWrite(13,1); D5.shutterNow(); } else { // změna // if(buf[0]==’0′){ // zmena digitalWrite(13,0); } } }
no a transmiter taky není moc dotáhnutý k dokonalosti:
#include <VirtualWire.h> #define PIN_MOTION 2 #define PIN_LIGHT 13 #define PIN_TX 12 char *message; void setup() { pinMode(PIN_LIGHT, OUTPUT); pinMode(PIN_MOTION, INPUT); digitalWrite(PIN_LIGHT, LOW); vw_set_ptt_inverted(true); vw_set_tx_pin(PIN_TX); vw_setup(2000); delay(1000); } void loop(){ byte input = digitalRead(PIN_MOTION); if (input == HIGH){ digitalWrite(PIN_LIGHT, HIGH); message = „1“ ; vw_send((uint8_t *)message, strlen(message)); vw_wait_tx(); delay(10); } else { digitalWrite(PIN_LIGHT, LOW); message = „0“ ; // zmena } }
fidos
Účastníkkod pro transmitter :
#include <VirtualWire.h>
#define PIN_MOTION 2
#define PIN_LIGHT 13
#define PIN_TX 12char *message;
void setup() {
pinMode(PIN_LIGHT, OUTPUT);
pinMode(PIN_MOTION, INPUT);digitalWrite(PIN_LIGHT, LOW);
vw_set_ptt_inverted(true);
vw_set_tx_pin(PIN_TX);
vw_setup(2000);delay(1000);
}void loop(){
byte input = digitalRead(PIN_MOTION);if (input == HIGH){
digitalWrite(PIN_LIGHT, HIGH);message = „1“ ;
vw_send((uint8_t *)message, strlen(message));
vw_wait_tx();
delay(10);
}
else{
digitalWrite(PIN_LIGHT, LOW);
}
}kod pro reciever :
/*———————————————————————————-
Motion Activated DSLR Shutter Remote
Receiver Sketch (433mHz Serial RX)
Written By: Angelo Casimiro (ASCAS/ TechBuilder)
Date Written: October 18, 2014Pin Configuration:
– Digital#12 of Arduino to Data Out of RX module
– Digital#11 of Arduino to IR LED
———————————————————————————-*/
#include <multiCameraIrControl.h>
#include <VirtualWire.h>Canon D5(11);
void setup()
{
vw_set_ptt_inverted(true);vw_set_rx_pin(12);
vw_setup(2000);vw_rx_start();unsigned int data = 0;
pinMode(13, OUTPUT);
pinMode(11, OUTPUT);
}
void loop(){uint8_t buf[VW_MAX_MESSAGE_LEN];uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)){
if(buf[0]==’1′){
digitalWrite(13,1);
D5.shutterNow();
}
if(buf[0]==’0′){
digitalWrite(13,0);
}
}
}Awrel
ÚčastníkAsi jo, DS18B20 má lepší rozsah měřených hodnot. 🙂
Sloučit je nemůžu, protože pak by bez cirkulace zamrzaly rozvody vody a je to i chovatelsky nepraktické.
Díky za reakci a link na vysvětlení klonů.
BlindP
ÚčastníkAhoj, pt100 moc není vhodný pro tuto aplikaci, spíš tak měřit teplotu v troubě. 😀
Nešlo by ty napaječky nějak sloučit do jedné a mít jen centrální nádrž? Jako čidlo třeba lm35 by stačilo.Uno stačit bude, stačit bude i pro mini.BP
https://bastlirna.hwkitchen.cz/forum/tema/klon-ano-ne/posjirka
Účastníknikdo tě nevyhazuje, Jeslti cítíš, že to pro tebe není, je dobré si to přiznat. Na druhou stranu stačí projít pár základů a pochopit jednotlivé kroky. Nejsou to jen texty aby dobře vypadaly. Každý příkaz má nějáký svůj význam a funkci. Mrkni ještě na toto :
http://www.hobbyrobot.cz/wp-content/uploads/ArduinoPriruckaProgramatora.pdf
hobbyrobot tam odvedl velmi dobrou práci s jednoduchým popisem jednotlivých částí a fuknci Arduina.Jerry
ÚčastníkOmlouvám se všem které jsem otravoval ardo znám asi 20 dní nejsem typ na programování, ale snažil jsem se. Pokud jde tohle vlákno nějak smazat budu rád. Díky už otravovat nebudu.
posjirka
Účastníkchlape, chybí ti základy. opravdu je nutné si nejdřív něco nastudovat a pak začít experimenovat. kdybyte led[] = {2,3,4,5,6,7,8,9,10,11}; //piny s LED diodamioužil ten můj kod a upravil :
byte led[] = {2,3,4,5,6,7,8,9,10,11}; //piny s LED diodami
na třeba
byte led[] = {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}; //piny s LED diodami
tak je to hotové. opravdu ale je třeba vyzkoušet examply a tutoriály než začneš vymýšlet svoje řešení, bez hlubšího pochopení souvislosti to prostě nejde.Jerry
ÚčastníkJá ale teď potřebuji zkombinovat D a A výstupy
Petr99
ÚčastníkDíky, funguje 🙂
BlindP
ÚčastníkSmyčka for – https://www.arduino.cc/en/Reference/For
Kompletní kód – https://www.arduino.cc/en/Tutorial/KnightRider
Jirka už Ti přece ten kód tady napsal.
BPBlindP
ÚčastníkAhoj, serial.read přečte jeden byte. Zkus to takhle:
while(Serial.available() > 0) { hodiny = Serial.parseInt(); minuty = Serial.parseInt(); sekundy = Serial.parseInt(); if(Serial.read() == '\n') { break; } }
Čas potom nastavíš posláním 22:23:24.
https://www.arduino.cc/en/Reference/ParseInt
BPJerry
ÚčastníkJinak díky za podporu a gratulaci že jsem konečně něco udělal dobře.. zítra to bude cca 20 dní co jsem poprvé viděl ardo.
Jerry
ÚčastníkProsím nakopnout víc 🙁 Tady se nějak ztrácím to už jsem zkoušel ale nevím jak definovat OUTPUT ve void setup … myslím pole
posjirka
Účastníkkod je vložen správně … gratulace. No te´d jsi se dostal do stavu, kdy to takto jednoduše nepůjde. Tak „zpátky na stromy“ a podívej se na ten můj původní kod polem. Analogové piny mají při úpoužití jako digitální čísla 14 (A0) až 19 – (A5).
tady je velmi vhodné použít pole. nemusel bys překopávat počítadlo for, ale stačilo by upravit seznam použitých pinů. Navíc bys jej mohl libovolně rozšiřovat/zužovat bez výrzné změny kodu (prostě bys jen změnil počet hodnot v poli) …Jerry
ÚčastníkTak snad už to bude lepší. Dotaz .. v tomhle kódu nepůjde kombinovat výstupy D a A. Jak by to šlo vyřešit ?
int prodleva = 40; int prodleva1 = 80; int prodleva2 = 200; void setup() { // nastavení pinů pro led jako OUTPUT for (int i = 2; i <= 11; i++) { pinMode(i, OUTPUT);} } void loop() { // rozsvítí postupně led 1-10 for (int i = 2; i <= 11; i++) { digitalWrite(i, HIGH); delay(prodleva); } // zhasne postupně led 1-10 for (int i = 2; i <= 11; i++) { digitalWrite(i, LOW); delay(prodleva); } delay(prodleva2); // rozsvítí postupně led 10-1 for (int i = 11; i >=2; i--) { digitalWrite(i, HIGH); delay(prodleva1); } // zhasne postupně led 10-1 for (int i = 11; i >=2; i--) { digitalWrite(i, LOW); delay(prodleva1); } delay(prodleva2); }
Jerry
ÚčastníkDíky moc to mě netrklo. Njn tak příště už to bude snad lepší.
Vojtěch Vosáhlo
ÚčastníkHledám právě komponent, né modul. Modulů v ČR seženu dost ale ty precizní OP zesilovače tu skoro nejsou…
-
AutorPříspěvky