jemiki8453
Vytvořené odpovědi
-
AutorPříspěvky
-
posjirka
Účastníkpřesně jak píšeš. INA219 by ti to mohlo vyřešit. Abych přiznal barvu : o tomto řešení jsem nevěděl. Díky za poučení 🙂
Jinak už to možná komplikuju ale použil bych Sd kartu a LCD display, nebo 2 LED diody
Po připojení by na SD kartě zavedl nový soubor (1.csv). Pokud by byl obsazen inkremntoval by nahoru a založil další (vhodné pro případné krátkodobé přerušení napájení třeba na zlomeném kabelu)
Rozsvítil by LED signalizující záznam.
po určitém, čase (třeba 10s, nebo 1 minuta) by si změřil proud a něpětí. Tyto údaje by zaznamenal do souboru.
Když by proud byl menší než dolní mez (třeba 20mA) což by signalizovalo ukončení nabijení, rozsvítil by LED signalizující ukončení nabijení. Zároveň by zhasnul LED isgnlizující záznam.Vojtěch Vosáhlo
ÚčastníkPředpokládám že máte klon s CH340. Zkuste omrknout toto: http://www.instructables.com/id/Arduino-Nano-CH340/
Vojtěch Vosáhlo
ÚčastníkK počítání rezistoru určitě doporučuju nějaký kalkulátor online. Jinak by to bylo asi hodně počtů. Např: http://www.petervis.com/GCSE_Design_and_Technology_Electronic_Products/transistor_base_resistor_calculator/transistor_base_resistor_calculator.html
Vše co to chce by jste měl mít v datasheetu tranzistoru. Pokud vím tak s úbytkem napětí se nepočítá. Taková zažitá věc je dávat rezistory 10k, to většinou funguje ale lepší je to propočítat. Ten R2 je podle využití pullup nebo pulldown. Zajišťuje aby byla např báze tranzistoru vždy v nějakém stavu a nejen „floating“. Tzn tento rezisto dostává na pin pozitivní napětí nebo zemi i pokud mikrokontolér na pin nic nepouští. U avr může být tento rezistor nahrazen nastavením stavu pinu místo INPUT na INPUT_PULLUP. Většinou je ale lepší řešit to extérně.
rerege
ÚčastníkNu, snažil jsem se, ale koukám že asi málo :o)
psal jsem, že potřebuji měřit průběh nabíjení mobilu a holt nabíječky jsou dnes různé…
CSV na kartu by v pohodě stačilonašel jsem s INA219 třeba toto:
http://henrysbench.capnfatz.com/henrys-bench/arduino-current-measurements/ina219-arduino-current-sensor-voltmeter-tutorial-quick-start/stačilo by to? S tím, že místo odporu s LED by byl mobil a místo baterie nabíječka ?
Mezitím bych si ukládal v mobilu kolik kdy je kolik procent – appka buď bude, nebo si jí naprogramuji…posjirka
Účastníkto musíš říct na začátku co chceš vlastně měřit. Bez toho to nejde.
1W kde jsem vzal? 0,1Ohm a proud 2A = ztráta 0,2V
Ztrátový výkon = 0,2V * 2A = 0,4W . 1W v pohodě.
Při 3A by to bylo 0,1Ohm * 3A = 0,3V => ztrátový výkon 0,3V * 3A = 0,9W to je tipťop bez rezerv.
Proto je třeba si říct co vlastně chceš a v jakých paramaterech.
Napětí bych asi vyřeišl tak, že bych arduino napájel 3,3V.
Proč? Stabilizátor 3,3V bez problému bude fungovat jak na 5V tak na 12V.
Navíc můžeš použít třeba SD kartu na ukládání dat (ta potřebuje 3,3V napájení i komunikaci). Když to uložíš do CSV formtu, tak to v excelu v pohodě otevřeš a můžeš tvořit grafy.eXMarty
ÚčastníkDěkuji,
určitě je mi jasné že je potřeba znát proud. Popravdě nemyslím si že bych se dostal přes tu 1,5A. Jak pak spočítat proud LEDkama tuším, ale jestli musím počítat nějak s úbytkem napětím na tranzistoru mezi D a S. Omlouvám se opravdu sem se zatím dost dobře nezorientoval.
Jinak děkuji za typ tranzistoru. Jen ještě jaké zvolit odpory (ty co mám na schématu označen R1 a R2 – viděl jsem také zapojení a text, kde ten R1 vynechávají úplně?Ještě jednou předem moc díky za rady
Čím konkrétnější tím budu raději, hlavně když mi dáte radu jak spočítat potřebné odpory abych již znovu nemusel otravovat když budu nějak pozměňovat zapojení.
Vojtěch Vosáhlo
ÚčastníkChce to vědět jaký proud bude tranzistor/fet spínat. To je základ. Pro menší proudy a napětí se dá použít menší tranzistor, např BD140 a nebo další řady. Ty dokáží spínat až 1,5A. Varianta pro vyšší proud a napětí jsou darlingtonovy tranzistory, např TIP120 spínající až 5A. Poté pro ještě větší zátěže se dá použít FET. U led si tedy zjistěte proud a napětí, poté se dá počítat.
Aleš
ÚčastníkMožná by šlo použít toto:
INA219
Bohužel mi ještě z číny nepřišel, takže zkušenosti s tímto obvodem nemám. Ale podle datasheetu by to mělo umět měřit proud docela přesně.ArduXPP
ÚčastníkMěl bych pár otázek, co znamená 0.1 Ohm/ 1W ? Mě zajímá kde se vzal 1W .
Co když budu chtít měřit větší Volty než je limit arduino 5V, třeba 12V .
Jak se vypočítává citlivost ?rerege
ÚčastníkAhoj posjirka – moc díky za první helf
Ano potřebuji pouze sledovat, jak probíhá nabití telefonu… takže
origo nabíječka od telefonu
|
|
něco s USB na obou koncích ————————– Arduino Uno
|
|(nejlépe zde již bez káblu)
|
telefon5V asi nepostačí, neb jsem již recenzoval např. Umi Plus a ten disponuje rychlonabíjením – nevím jak to všechno funguje, ale na nabíječce jsou hodnoty:
5V/7V/9V – 1,67A
12V – 1,25Adoufám, že nejsem první člověk na zeměkouli, koho něco takového napadlo :o)
Váňa
posjirka
Účastníktak já už chybu našel a není tvoje 🙂
Nevím proč, ale používají radio.read() jako funkci s návratovou hodnotou ( done = …).
Tato funkce ale žádnou návrtotvou hodnotu nepodporuje a tudíž nemůže ani fungovat while …Ve výsledku zkus tuto verzi:
#include <SPI.h> #include <nRF24L01.h> #include <RF24.h> int msg[1]; RF24 radio(9,10); const uint64_t pipe = 0xE8E8F0F0E1LL; int LED1 = 3; void setup(void){ Serial.begin(9600); radio.begin(); radio.openReadingPipe(1,pipe); radio.startListening(); pinMode(LED1, OUTPUT); } void loop(void){ if(radio.available()){ //bool done = false; //while (!done){ while (radio.available()){ radio.read(msg, 1); Serial.println(msg[0]); if (msg[0] == 111){ delay(10); digitalWrite(LED1, HIGH); } else { digitalWrite(LED1, LOW); } delay(10); } } else { Serial.println("No radio available"); } }
a pro vkládání kodu používej párové značky CODE (předposlední tlačítko při psaní odpovědi) jinka se ti to rozhází, přepíšou se ti dvojité úvozovky atd.
Jerry
Účastník#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
int msg[1];
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int LED1 = 3;void setup(void){
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1,pipe);
radio.startListening();
pinMode(LED1, OUTPUT);}void loop(void){
if (radio.available()){
bool done = false;
while (!done){
done = radio.read(msg, 1);
Serial.println(msg[0]);
if (msg[0] == 111){delay(10);digitalWrite(LED1, HIGH);}
else {digitalWrite(LED1, LOW);}
delay(10);}}
else{Serial.println(„No radio available“);}}Jerry
Účastníkmám 1.6.12 tak nevím jestli je to špatně
posjirka
Účastníkpředpokládám chyhu v knihovnách. Stáhni si ty z instructables.com
http://www.instructables.com/id/Wireless-Remote-Using-24-Ghz-NRF24L01-Simple-Tutor/?ALLSTEPS
a nainstaluj si je.
Někdy je na vině i samotné Arduino IDE a je třeba jej přeinstalovat nebo alespoň pročistit instalované knihovny.Podle ohlasů na istructable je na vině knihovna RF24 …
Jerry
ÚčastníkAhoj
V prvním příspěvku mi při kompilaci kódu pro RX na řádku „done = radio.read(msg, 1);“ vypisuje chybu. Nemůžu přijít na to ke to je.
Děkujiposjirka
Účastníkmyslím to takto.
Připojením pinu přímo na +5V je skvělá cesta do pekel. Nikdy se nepřipojuje napájení přímo bez ochranného odporu. Hrozí zničení vstupních obvodů.Attachments:
fidos
ÚčastníkPauzu uz sem zkousel nastavit na 10ms, ale stejny. Vysilac mam zapojeny primo na +5V, proc se tam musi davat odpor? Jinak nerozumim “ a pak se tlačítkem ten pin přizemní “ – dam odpor na +5V a co dal?
Jerry
ÚčastníkDíky
posjirka
Účastníkpředpokládám, že potřebuješ pouze sledovat nabijení a nikoliv ho řídit. Pak satčí do cesty vložit přesný odpor (třeba 0,1 Ohm/ 1W) a měřit na něm úbytek napětí. Předpokládám, že se bavíme o proudech do 2A kdy bude ztráta na odporu 0,2. Při 5V napájení to bude mít citlivost cca 5mv = 20 mA. Při použití odporu 0,22Ohm bude citlivost ještě větší. Komunikace s excelm je třeba zde:
http://www.instructables.com/id/Sending-data-from-Arduino-to-Excel-and-plotting-it/
schéma nabiječky :
http://www.allaboutcircuits.com/projects/create-an-arduino-controlled-battery-charger/
a nebo pojdme do hotoveho řešeni:
http://www.gadgetmakersblog.com/phone-charger-current-comparison/posjirka
Účastník1. nikdy nepřipojuj +5V přímo na piny. Proto se dělá toto zapojení přesně opačné:
+5V – odpor – pin – tlačítko (kontakt) – zem
Reaguje pak na úroveň LOW ( 0 )
2, není špatné použít LED 13 jako indikační (nic se nemusí zapojovat) a na ní svést oba 2 piny. když bude jeden z pinu == LOW roszvi´t LEd jinak zhasni LED.posjirka
Účastníkpřesně jak píše Vojtěch.
1. použij smyčku for a do ni uzavři celý průběh bargrafu pro 1 směr.
2. v setup() má piny vypsané z pole, v loop() už vypsiuješ každý zvláš´t. i tady ti pomůže pole.
3. různě časy spoždění pro 2 směry můžeš nastavit zvlášť po dokončení smyčky
4. máš zmatek v počtu LED v poli (11 ks) a v setup() (12ks)Můžu tě trochu nakopnout správným směrem. Zapiš do programu tyto posloupné funkce:
setup()
smyčka for pro i = 0 až 10
– nastav pinmode pro LED[i]
– nastav LED[i] na LOW
konec smyčkyloop()
smyčka for pro i = 1 až 10
– nastav LED[i] na HIGH
– čekej
konec smyčky
smyčka for pro i = 1 až 10
– nastav LED[i] na LOW
– čekej
konec smyčky
smyčka for pro i = 10 až 1
– nastav LED[i] na HIGH
– čekej
konec smyčky
smyčka for pro i = 10 až 1
– nastav LED[i] na LOW
– čekej
konec smyčkysamozřejmě to jde ještě výrazně zjenodušit, ale je třeba si uvědomit možnosti a funkci jednotlivých příkazů. Pokud budeš chtít ještě o stupínek nahoru, tak můžes definovat proměnnou a která bdue mít hodnoty 1 až 4, ty pojednou v hlavní smyčce loop() a budou značit jednotlivé fáze změny svitu LED:
1 – rozsvi´t 1-10
2 – zhasni 1-10
3 – rozsviť 10-1
4 – zhasni 10-1
na to by byl vhodný select case ….ps. a´t tu nejsem ukamenován: vím, že to jde mnohem jednoušeji, ale když začíná je lepší aby to pochopil jak co funguje, než mu dát hotový kod.
Vojtěch Vosáhlo
ÚčastníkEDIT: Není to foreach ale jen FOR, omlouvám se. Doporučuju inspirovat se třeba tady: https://www.arduino.cc/en/Tutorial/ForLoopIteration
posjirka
Účastníktak jsem se konečně dostal no to tvoje řešení.
knihovny se netlučkou – vždyť to fungovalo v instructable.com , ale zaráží mě 2 věci:
1- spouštíš vysílač na urovńi HIGH. Ty opravdu připojuješ +5V přímo na pin? to je celkem sebevražda.
Vždy se dává odpor (1k0) mezi pin a +5V a pak se tlačítkem ten pin přizemní (takže úroveń LOW)
2 – proč máš pauzu 1000 ms (vysílač) ,po odelslání signálu, když v originále bylo 10ms. Takže mohl ten signál odeslat několikrát a pak byla větší pravdepodobnost, že se chytí.
JKeslti chceš omezit počet semoutí, tak to nech až u přijímače.Jerry
ÚčastníkDěkuji
Oldřich Horáček
SprávceZdravím Jardo, k NRF24L01 je toho na netu hodně. To je možná důvod, proč tady zatím nikdo neodpověděl. Doporučuji začít například tady:
a pak pokračovat volně dál až do chvíle, než vše zvládnete a bude vám to fungovat.
http://www.arduino8.cz/komunikujeme-bezdratove-s-nrf24l01-1-cast-zapojeni/
http://shanes.net/simple-nrf24l01-with-arduino-sketch-and-setup/
http://www.instructables.com/id/Wireless-Remote-Using-24-Ghz-NRF24L01-Simple-Tutor/
Pokud vám to funguje ale cítíte, že jste něco přeskočil, doporučuju stáhnout ebook zdarma o Arduinu a projít si i věci na kterých to celé stojí. Nebo si přes vánoce lehnout s naší knížkou 🙂
Hodně úspěchů s Arduinem!
Oldřich 🙂Miroslava
ÚčastníkPardon v schéme som použila zlé rezistory – reálne mám 10k. Ledka funguje pre prvý snímač zlava zapojený do PIN 3, ak prehodím napájanie do breadbord ako na obrázku tak zas funguje druhý snímač zlava zapojený do PIN2, preto mi príde že som to zle zapojila. Vždy sa rozbliká LED bližšie k napájaniu.
Snímače som použila tieto :Magneticke snimače
Rezistory tieto: Rezistory
Attachments:
Vojtěch Vosáhlo
ÚčastníkŠlo by to zkrátit na pár řádek pomocí foreach a někde bitshiftováním ale foreach by mělo stačit. Doporučuju zkouknout si nějaké ukázky. Na večer můžu přidat i kód.
Vojtěch Vosáhlo
ÚčastníkKód mi přijde správně a zapojení taky, jen bych dal rezistory trochu větší 1k/4k7/10k nebo další. Funguje pin pokud přes něj např. blikáte ledku? Předpokládám že magnetický spínač je ok. Jediná reálnější možnost je že je pin poškozený nebo něco na desce… Zkuste tu ledku a uvidíme.
Jerry
Účastník -
AutorPříspěvky