-
Mobilarena
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
Janos250
őstag
Köszi, azt hiszem, valami ilyesmi lesz. Ilyen DC/DC-m van pár, de nem is kell a 3 potis, elég az 1 potis is, mert pl. áramkorlát nem kell.
Vagy tényleg 3 potis, és akkor az "indokolatnul nagy kondi", egy Li akku lesz, ami állandóan rajta lesz a töltőn, és az áram lekapcsolásakor is működik egy darabig.
Egyébként egy riasztó része lesz.
A mai "olcsó" kínai kamerák zöme is tudja az emberi alak felismerést, valamint nem csak mailre, hanem riasztó szerverre is tud küldeni egy karaktersorozatot TCP-n.
Ez a szerver egy ESP32 + SIM800 lesz, ami megcsörgeti a zsebemben lévő (buta) telefont, amivel telefonálni szoktam. Nem veszem fel, mert akkor ingyenes.Erre előveszem a táskából az okostelefont, bekapcsolom, és megnézem neten a kamerát, hogy a sok gyerek közül melyik az, amelyik megint le akarja verni kalapáccsal a vasszekrényről a lakatot.
-
olli
tag
-
#68216320
törölt tag
Mert nem akarok egy komplett pc-t azert tartani, hogy mondjuk a netrol leszedett anyagot usb-n atvigyem arra, majd azon kiirjam lemezre, amit atviszek az adott gepemre. Majd ugyanez visszafele, ha a retro gepemen elkeszitett cuccot akarom mondjuk elkuldeni valakinek. Erre piszkosul felesleges tartani egy kulon gepet monitorral, billentyuzettel, miegyebbel.
Amikor meg nem kell akkor kerulgethetem. Minek???A linkelt cuccokkal ugyanaz van, mint az összes többi project-el.
Nem jelenik meg az OS-en közvetlen hardverként.
De, hogy érthető legyen:
Az USB portra dugva nem jelenik meg az A: meghajtó a fájlkezelőben és nem tudok hagyományos módon írni/olvasni/formátni vele 1.44/720 formátumban. -
#68216320
törölt tag
A probléma az, hogy bár több márkanév alatt érhetőek el jelenleg usb-s floppy drive-ok, de a belseje mindegyiknek ugyanaz.
A jelenlegi problémát maga a belsejében használt Teac fdd jelenti.
Az a tapasztalatom, hogy annyira vacakul állítják be őket, hogy sok közülük a mások által írt lemezeket talán-talán beolvassa (bár a fejmozgást figyelve küzd velük), de amikor írni kell annyira elcsúszottak a szektorok, hogy a többi drive képtelen beolvasni.
Sanszos, hogy egyreszt a két fej sincs teljesen egyvonalban, másrészt megfigyeltem, hogy a léptetőmotor sincs jól beállítva.
Mivel csak usb-n érhető el, gyakorlatilag semmi korrigációt nem lehet rajtuk eszközölni, mert a kalibrációs programok nem kapnak ilyen jellegű adatokat.
A lényeg, hogy ezért csinálnám azt, hogy desktop gépekhez használatos floppy drive-okat használnék usb-re kötve.
Ezek filléres tételek, ha valamelyik problémás akkor kuka és mehet a kábelra egy másik.Egyszerű megoldásnak tűnik erre valami MCU.
-
lanszelot
addikt
Igen, félre értettél.
Sehol se írtam hogy át írom a pinMode -ot.
Csak a pineket írom át.
Hiszen Megán nem ott van ahol Digispark-on.its_grandpa
Mi az az ISR?
Én azt a kódot a fent linkelt példából vettem.
De majd ha haza érek kipróbálom amit írtálItt a 0 az nem a pin-t adja meg, ez egy rövidítés, az első interrupt pin-t jelenti mindegy melyik chippen. Általában az a 2-es pin.
attachInterrupt(0, teker, CHANGE);
-
lanszelot
addikt
Nem értem.
Szerintem félre értettél.
Mind a kettőre ugyanazt töltöm fell.
Csak a pint írom át.
Tehát nincs különbség.Janos250:
Huhh, az nekem még nagyon bonyolult.
Néztem az oldalt is ami alapján van, de valahogy nem áll össze a fejemben. Nagyon sok benne ami után nézek, és bele kavarodok.
De köszönöm szépen, még agyalok rajta, legalább tanulok -
lanszelot
addikt
Fix tekerések vannak. Nem lehet félúton megállítani.
1 teljes kör 20 tekerés.
Nem tudom mi a lépés. Gondolom ha nem fix.
Tehát tekerés.
1/20 ot fordítok, azaz egy tekerést, az idő korlát nélkül akkor 10 vagy többnek számolja. Nem tudom mennyi, mert nincs serial monitor digispark-on.
Ha nem találok megoldást, elvileg hét végére megjön a nano amit rendeltem és azzal megnézem mennyi egy tekerés. Azon van serial monitor, de kijelzőt is tudok rárakni. És kiiratom épp mennyit számol.Még mindig úgy gondolom az "if" feltétele nem jó.
Honnan tudom hogy melyik irányba tekerem, erre kell rájönnöm.
Kijavítom az "if" feltételt és akkor a másik irányba is tudom tekerni. -
lanszelot
addikt
Sajnos nem oldotta meg.
module: elegoo rotary encoder
hátha ez segít.jelenlegi kódom így néz ki :
/*LED input*/
#define led 0
/*rotary encoder input*/
#define inputCLK 2
#define inputDT 1
int currentStateCLK;
int previousStateCLK;
int keses = 1000;
uint32_t lastms= 0;
void teker(){
if (millis() - lastms > 1000)
{
lastms = millis();
if(digitalRead(inputDT) == currentStateCLK){
keses = keses+100;
}else{
if(keses > 100){
keses = keses-100;
}
}
/*update */
previousStateCLK = currentStateCLK;
}
}
void setup() {
/*inicializálja a Rotary Encoder CLK pin-t inputnak , default HIGH !!! */
pinMode(inputCLK, INPUT_PULLUP);
/*rotary encoder pins input*/
pinMode (inputDT, INPUT_PULLUP);
/*LED pin output*/
pinMode (led, OUTPUT);
/*read initial state of inputCLK*/
previousStateCLK = digitalRead(inputCLK);
/* meghívjuk az fv.-t ha LOW-ra húzod a pin-t */
attachInterrupt(0, teker, CHANGE);
}
void loop() {
/*read current state of inputCLK*/
currentStateCLK = digitalRead(inputCLK);
/*red led on off*/
digitalWrite(led, HIGH);
delay(keses);
digitalWrite(led, LOW);
delay(keses);
}razorbenke92:
nem +-1 extrát ugrik, hanem minimum 10-et.
lehet, hogy többet is, csak azt nem tudom ellenőrizni.
1000 az érték, és 100 -asával csökken, 1 tekerés 100-ra viszi le azonnal.
100 alá nem tud menni.
Serial monitor nem működik digispark-al, így nem tudom ellenőrizni mennyit ugrik 1 tekerésre.Janos250:
Nálam azért nem jó, mert ha 1000 -ről 500-ra akarom levinni, 100 -al csökkentve, akkor 5 ször ugyanaz a csatorna kell változzon. -
Janos250
őstag
Én már nagyon rég használtam rotary encodert, de én úgy emlékszem, hogy a pergést nem idővel, meg ilyesmivel küszöböltük ki, hanem a változást csak akkor szabad változásnak tekinteni, ha nem ugyanaz a csatorna változik, hanem a másik. Ez kiküszöböli a pergést.
Vagy valamit nagyon rosszul értelmezek? -
lanszelot
addikt
Oh, azt hittem az attachInterrupt más
pin-ek:
digispark gnd : RotEnc gnd
digispark 5V : RotEnc+
digispark pin2 : RotEnc CLK
digispark pin1 : RotEnc DT
digispark 5V : R1
digispark gnd : R2
pirosLED rövid láb : R1
kékLED rövid láb : R2
pirosLED hosszú láb : digispark pin0
kékLED hosszú láb : digispark pin0már úgy ahogy működik, de egy irányba állítja csak a sebességet:
/*LED input*/
#define led 0
/*rotary encoder input*/
#define inputCLK 2
#define inputDT 1
int currentStateCLK;
int previousStateCLK;
int keses = 1000;
uint32_t lastms= 0;
void teker(){
if (millis() - lastms > 1000)
{
lastms = millis();
if(digitalRead(inputDT) == currentStateCLK){
keses = keses+100;
}else{
if(keses > 100){
keses = keses-100;
}
}
}
}
void setup() {
/*inicializálja a Rotary Encoder CLK pin-t inputnak , default HIGH !!! */
pinMode(inputCLK, INPUT_PULLUP);
/*rotary encoder pins input*/
pinMode (inputDT, INPUT);
/*LED pin output*/
pinMode (led, OUTPUT);
/*read initial state of inputCLK*/
previousStateCLK = digitalRead(inputCLK);
/* meghívjuk az fv.-t ha LOW-ra húzod a pin-t */
attachInterrupt(0, teker, CHANGE);
}
void loop() {
/*read current state of inputCLK*/
currentStateCLK = digitalRead(inputCLK);
/*red led on off*/
digitalWrite(led, HIGH);
delay(keses);
digitalWrite(led, LOW);
delay(keses);
/*update */
previousStateCLK = currentStateCLK;
} -
lanszelot
addikt
Először is nagyon szépen köszönöm a segítséget mindenkinek.
Azért nem.valaszoltam még, mert nekem még sok időbe telik programozni.
Utána kell olvasgatnom, megértem, próbálgatom .
Mind a 2 megoldást szeretném megcsinálni, csak az interupt -ot nem értem, és keresgetek hátha találok valami kódot, és nem nyers leírást. A kódból könnyebben megértem.A millis() -t már csináltam, ezért a nehezebbel kezdtem.
Még sehol se tartok, csak próbálom megérteni.
Mindenképpen jelzem, hogy sikerült e. -
olli
tag
avrdude.exe: reading input file "0x00"
avrdude.exe: writing lfuse (1 bytes):
Writing | ################################################## | 100% 0.02s
avrdude.exe: 1 bytes of lfuse written
avrdude.exe: verifying lfuse memory against 0x00:
Reading | ################################################## | 100% 0.02s
Na ezt a részt nem értem.
Bepipáltam az írást, csak 0x00 beállítással fut le.
Nem írható felül, milyen filet kellene írni? -
-
lanszelot
addikt
Most jöttem rá, hogy fogalmam sincs hogyan kell digispark bootloader-t felrakni.
Amit vettem azon alapból volt.
Így nem tudom hogy csináljam az Attiny85 bootloader-t.Emiatt fiók méllyére raknám a programmer board-ot, és maradnék az arduino feltöltéssel.
De az miért nem működik?Ha tudok bootloader-t hiba nélkúl rárakni, miért nem tudok programot rátölteni?
Miért dob hibát? -
-
lanszelot
addikt
A link véletlen lemaradt.
De ha ugyanezzel bootloadert rakok fel, akkor viszont semmi gond.
Minden uyanaz, csak a kondenzátort rakom a rst gnd -re.itt a bootloader lefutása:
"
C:\Users\robag\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CC:\Users\robag\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -v -v -v -v -pattiny85 -cstk500v1 -PCOM3 -b19200avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg WunschSystem wide configuration file is "C:\Users\robag\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"
Using Port : COM3
Using Programmer : stk500v1
Overriding Baud Rate : 19200
avrdude: Send: 0 [30] [20]
avrdude: Send: 0 [30] [20]
avrdude: Send: 0 [30] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
AVR Part : ATtiny85
Chip Erase delay : 400000 us
PAGEL : P00
BS2 : P00
RESET disposition : possible i/o
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 12 4 0 no 512 4 0 4000 4500 0xff 0xff
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
flash 65 6 32 0 yes 8192 64 128 30000 30000 0xff 0xff
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00Programmer Type : STK500
Description : Atmel STK500 Version 1.x firmware
avrdude: Send: A [41] . [80] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [02]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [81] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [01]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [82] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [12]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [98] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
Hardware Version: 2
Firmware Version: 1.18
Topcard : Unknown
avrdude: Send: A [41] . [84] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [85] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [86] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [87] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [89] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
Vtarget : 0.0 V
Varef : 0.0 V
Oscillator : Off
SCK period : 0.1 usavrdude: Send: A [41] . [81] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [01]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [82] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [12]
avrdude: Recv: . [10]
avrdude: Send: B [42] . [14] . [00] . [00] . [01] . [01] . [01] . [01] . [03] . [ff] . [ff] . [ff] . [ff] . [00] @ [40] . [02] . [00] . [00] . [00] [20] . [00] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
avrdude: PAGEL and BS2 signals not defined in the configuration file for part ATtiny85, using dummy values
avrdude: Send: E [45] . [05] . [04] . [d7] . [a0] . [01] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
avrdude: Send: P [50] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
avrdude: AVR device initialized and ready to accept instructionsReading | avrdude: Send: V [56] 0 [30] . [00] . [00] . [00] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [1e]
avrdude: Recv: . [10]
avrdude: Send: V [56] 0 [30] . [00] . [01] . [00] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [93]
avrdude: Recv: . [10]
################avrdude: Send: V [56] 0 [30] . [00] . [02] . [00] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [0b]
avrdude: Recv: . [10]
################################## | 100% 0.02savrdude: Device signature = 0x1e930b (probably t85)
avrdude: Send: Q [51] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]avrdude done. Thank you.
" -
#68216320
törölt tag
Nem rossz ötlet. Négy darab kijelző van, ha nagyon leredukálom, hogy mondjuk a másodperc nem kell, akkor bele is férhet.
Viszont valahogy nem olyan szépek és nekem nem is egyformák a megjelenített pixelek a különböző nokia kijelzőkön. Próbáltam a kontrasztot állítani, de max azt értem el, hogy amelyik pixeleknek nem kell látszódnia az is megjelent.
Szóval elméletben nem rossz ötlet (bár az stm32 ha jól tudom 3 spi kimenettel rendelkezik) valahogy nem lenne tökéletes.Lehet teszek egy próbát az e-paper kijelzővel. Még úgysem dolgoztam olyannal.
-
#68216320
törölt tag
Ugye itt a fogyasztás lefaragása nem a villanyszámla miatt érdekes, hanem amiatt, hogy akkuról tudjam üzemeltetni.
A kijelzőméret amiatt érdekes, hogy egy asztalra, polcra letéve könnyen leolvasható legyen, amikor az ember elhalad előtte.
Emiatt sajnos a nokia kijelző nem jó (pedig van pár darab), mert kicsi.
Oled kijelzőből láttam 2.42" méretet, ami még mindig nem túl nagy sajnos, de legalább piszok drága.
Szóval emiatt van dilemma, hogy mi lehetne megfelelő. Az e-paper kijelző egyelőre vonzó alternatívának tűnik, bár nagyobb méretben szintén nem olcsó, de legalább a fogyasztása minimális.
Ez a "szimpatikus" dolog úgy látom magas labda volt
Viccként gondoltam azt a mondatot. Lehet egy smile kellett volna. -
olli
tag
```cpp
#define boiler 23 // villanyra kapcsol,rel1
#define gaz_kazan 17 // gázra kapcsol,rel2
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 13
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress D0 = { 0x28, 0x31, 0xBF, 0x29, 0x07, 0x00, 0x00, 0x7D }; // "T1"
DeviceAddress D1 = { 0x28, 0x4F, 0x8E, 0x2A, 0x07, 0x00, 0x00, 0x37 }; // "T2"
#include <Wire.h>
const char* ssid = "";
const char* password = "";
const char* ntpServer = "hu.pool.ntp.org";
const long gmtOffset_sec = 0;
const int daylightOffset_sec = 3600;
#define RTC_ADDRESS 0x68
#include <RtcDS3231.h>
RtcDS3231<TwoWire> Rtc(Wire);
// Convert normal decimal numbers to binary coded decimal
byte decToBcd(byte val){
return( (val/10*16) + (val%10) );
}
// Convert binary coded decimal to normal decimal numbers
byte bcdToDec(byte val){
return( (val/16*10) + (val%16) );
}
#include <Arduino.h>
#include "Wire.h"
#include "oled.h"
#include <WiFi.h>
#include "time.h"
#include <LoRa.h>
#define SCK 5 // GPIO5 -- SX1278's SCK
#define MISO 19 // GPIO19 -- SX1278's MISO
#define MOSI 27 // GPIO27 -- SX1278's MOSI
#define SS 18 // GPIO18 -- SX1278's CS
#define RST 14 // GPIO14 -- SX1278's RESET
#define DI0 26 // GPIO26 -- SX1278's IRQ(Interrupt Request)
#define BAND 433E6
unsigned int counter = 0;
String rssi = "RSSI --";
String packSize = "--";
String packet ;
struct tm timeinfo;
static char msg[20]; // character buffer
OLED display = OLED(4, 15, 16, 0x3C, 128, 32, true); // SSD1306
void szelep_vez ()
//T1+T2 >75 II T1>50= a boilerben van melegvíz
//rel2/pin17 villanyra kapcsol
//T1+T2<75 II T1<50= gáz melegíti a vizet
//rel1/pin23 gázra kapcsol
{
sensors.requestTemperatures();
float T1 = sensors.getTempC(D0);
float T2 = sensors.getTempC(D1);
if((T1+T2) > 75 || T1>49)
{
display.begin();
display.clear();
display.draw_string(4, 8, "BOILER", OLED::DOUBLE_SIZE);
display.display();
digitalWrite(boiler, HIGH);
digitalWrite(gaz_kazan, LOW);
delay(5000);
}
else
{
display.begin();
display.clear();
display.draw_string(4, 8, "GAZ_KAZAN", OLED::DOUBLE_SIZE);
display.display();
digitalWrite(gaz_kazan, HIGH);
digitalWrite(boiler, LOW);
delay(5000);
}
}
void setup(){
pinMode(boiler, OUTPUT); //villanyra kapcsol
digitalWrite(boiler, LOW);
pinMode(gaz_kazan, OUTPUT); //gázra kapcsol
digitalWrite(gaz_kazan, LOW);
pinMode(16,OUTPUT);
pinMode(25,OUTPUT);
digitalWrite(16, LOW); // set GPIO16 low to reset OLED
delay(50);
digitalWrite(16, HIGH); // while OLED is running, must set GPIO16 in high
Serial.begin(115200);
while (!Serial);
SPI.begin(SCK,MISO,MOSI,SS);
LoRa.setPins(SS,RST,DI0);
if (!LoRa.begin(433E6)) {
Serial.println("Starting LoRa failed!");
while (1);
}
Serial.println("init ok");
Wire.begin();
Serial.setDebugOutput(true);
//setTime(&timeinfo); // Valamikor be kell állítani az órát...
Serial.print("Connecting to ");
Serial.print(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected.");
// Init and get the time
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
printLocalTime();
Serial.println();
Serial.print("Connected! IP address: ");
Serial.println(WiFi.localIP());
//disconnect WiFi as it's no longer needed
WiFi.disconnect(true);
WiFi.mode(WIFI_OFF);
display.begin();
display.clear();
display.draw_string(4, 8, "RTC clock", OLED::DOUBLE_SIZE);
display.display();
//------- Initialize the Temperature measurement library--------------
sensors.begin();
sensors.setResolution(D0, 10); //T1
sensors.setResolution(D1, 10); //T2
// set the initial time here:
//DS3231 seconds, minutes, hours, day, date, month, year
//setDS3231time(00,34,12,2,6,3,23);
}
void loop(){
sensors.requestTemperatures();
float T1 = sensors.getTempC(D0);
float T2 = sensors.getTempC(D1);
Serial.print("Sending packet: ");
Serial.println(counter);
// send packet
LoRa.beginPacket();
LoRa.print("hello ");
LoRa.print( T1);
LoRa.print( T2 );
LoRa.print(counter);
LoRa.endPacket();
counter++;
digitalWrite(25, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(25, LOW); // turn the LED off by making the voltage LOW
delay(1000);
getLocalTime(&timeinfo); // display time/date
Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S");
RtcTemperature temp = Rtc.GetTemperature();
temp.Print(Serial);
// you may also get the temperature as a float and print it
// Serial.print(temp.AsFloatDegC());
Serial.println(" C ");
display.clear();
strftime (msg, 15, "%Y-%b-%d %a ", &timeinfo);
display.draw_string(16, 1, msg); // Display date
strftime (msg, 10, "%T ", &timeinfo); // Display time
display.draw_string(8, 12, msg, OLED::DOUBLE_SIZE);
display.display(); // Refresh screen
delay(3000);
display.clear();
display.setCursor(8,0);
display.println("T1= ");
display.setCursor(30,0);
display.println(T1);
display.setCursor(60, 0);
display.println(" C");
display.setCursor(8,12);
display.println("T2= ");
display.setCursor(30,12);
display.println(T2);
display.setCursor(60, 12);
display.println(" C");
display.display();
Serial.print(sensors.getTempC(D0));
Serial.println(" C");
Serial.print(sensors.getTempC(D1));
Serial.println(" C ");
//printLocalTime(); // display the real-time clock data on the Serial Monitor,
delay(1000); // every second
szelep_vez();
}
//--- Set RTC time/date ------------------------------------
void setLocalTime(struct tm* time) {
struct tm timeinfo;
Wire.beginTransmission(RTC_ADDRESS);
Wire.write(0); // set register pointer to 00h
Wire.write(decToBcd(time->tm_sec)); // set seconds
Wire.write(decToBcd(time->tm_min)); // set minutes
Wire.write(decToBcd(time->tm_hour)); // set hours
Wire.write(time->tm_wday + 1); // set day of week (1=Sun, 7=Sat)
Wire.write(decToBcd(time->tm_mday)); // set date (1 to 31)
Wire.write(decToBcd(time->tm_mon) + 1); // set month
Wire.write(decToBcd(time->tm_year - 100)); // year from 2000 (0 to 99)
Wire.endTransmission();
}
//--- Read time/date from RTC ------------------------------
void getTime(struct tm* time) {
Wire.beginTransmission(RTC_ADDRESS);
Wire.write(0); // a kiolvasás kezdőcímének beállítása
Wire.endTransmission(false);
Wire.requestFrom(RTC_ADDRESS, 7); // Hét bájt kiolvasása (time/date)
time->tm_sec = bcdToDec(Wire.read() & 0x7f); // Másodpercek (0-59)
time->tm_min = bcdToDec(Wire.read()); // Percek (0 - 59)
time->tm_hour = bcdToDec(Wire.read() & 0x3f); // Órák (24h kijelzéshez)
time->tm_wday = bcdToDec(Wire.read() - 1); // Hét napja (0 - 6)
time->tm_mday = bcdToDec(Wire.read()); // hónap napja (1 - 31)
time->tm_mon = bcdToDec(Wire.read() - 1); // hónap sorszáma (0 - 11)
time->tm_year = bcdToDec(Wire.read()) + 100; // 1900-tól eltelt évek
}
void printLocalTime(){
struct tm timeinfo;
if(!getLocalTime(&timeinfo)){
Serial.println("Failed to obtain time");
return;
}
Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S");
Serial.print("Day of week: ");
Serial.println(&timeinfo, "%A");
Serial.print("Month: ");
Serial.println(&timeinfo, "%B");
Serial.print("Day of Month: ");
Serial.println(&timeinfo, "%d");
Serial.print("Year: ");
Serial.println(&timeinfo, "%Y");
Serial.print("Hour: ");
Serial.println(&timeinfo, "%H");
Serial.print("Hour (12 hour format): ");
Serial.println(&timeinfo, "%I");
Serial.print("Minute: ");
Serial.println(&timeinfo, "%M");
Serial.print("Second: ");
Serial.println(&timeinfo, "%S");
Serial.println("Time variables");
char timeHour[3];
strftime(timeHour,3, "%H", &timeinfo);
Serial.println(timeHour);
char timeWeekDay[10];
strftime(timeWeekDay,10, "%A", &timeinfo);
Serial.println(timeWeekDay);
Serial.println();
}
/*void setup_sntp() {
const char* ntpServer = "hu.pool.ntp.org"; // regionális NTP hálózat
const char* time_zone = "CET-1CEST,M3.5.0,M10.5.0/3"; // Europe/Budapest időzóna
configTzTime(time_zone, ntpServer); // Időzóna megadása
Serial.println("Connecting to sntp server");
while (!getLocalTime(&timeinfo)) {Serial.print(".");} // Pontosidő lekérése
setTime(&timeinfo); // A DS3231 RTC beállítása
Serial.println(" NTP connected");
Serial.println(&timeinfo, "NTP time: %A, %B %d %Y %H:%M:%S");
}*/
``` -
olli
tag
sensors.requestTemperatures();
float T1 = sensors.getTempC(D0);
float T2 = sensors.getTempC(D1);
Serial.print("Sending packet: ");
Serial.println(counter);
// send packet
LoRa.beginPacket();
LoRa.print("hello ");
LoRa.print( T1);
LoRa.print( T2 );
LoRa.print(counter);
LoRa.endPacket();
A küldő LoRa packet összeállítása jelenleg.
Még nem világos, így mitől =0 az állapot?
Továbbra is küldeném a fenti adatokat + a relé kapcsolását.
Egyszerre, vagy külön mehet? -
-
lanszelot
addikt
Nem értem, azért kérdezem.
Mivel nem értem nem tudom mit kérdeztek ti.De ez is egy értékadás:
const int ledPin = 6;
Mi a kettő között a különbség?
Ton-ton:
tehát amit a modul mellé letöltök a Library -ból az csak egy program kód részlet
Ezek szerint én is meg tudok írni egy modulhoz egy ilyet a modulhoz?
Mert amiket néztem, azok pár soros program részek a *.h -ban.
Illetve van még ott más kiterjesztés is.Azért kérdem, mert van egy másik hőmérséglet érzékelőm, és ott a példában csak celziusz van, nincs farentheit. Tudom, írjak egy átváltást,és kész, de ha tudja akkor minek. Viszont hogy tudom meg miket tud. Mármint milyen alap parancsok, vagy mik vannak benne, aminek ne íjak extra sorokat.
Remélem érthető amit szerettem volna kérdezni. -
its_grandpa
tag
Több lehetőséget is látok.
Amikor hónap elsején felírjuk a villany,gáz és vízóra állást, megbootoljuk az eszköztVagy ....
A loop-ban ellenőrizzük, hogy az aktuális millis() kisebb-e a last-nál, mert akkor átfordult.
if ( millis() < lastms ) /* de lehet lastms+n ,ahol az n tapasztalati érték, a loop futásidejétől függ */
{
lastms = millis();
} -
ekkold
Topikgazda
Pergésmentesítésre sokféle megoldás van.
- Hardveres megoldás: külső felhúzó ellenállás a gombon, majd RC szűrő
- Megszakításból: állapotváltásra le kell tiltani a további megszakítást kb. 1...2msec-re, amíg a prellezés lezajlik.
- 0.1...1ms-os timer megszakításból: azt kell figyelni, hogy a gomb állapota néhány megszakításon át változatlan-e, ha igen akkor van vége a prellezésnek, és felhasználható az új állapot.
- loop()-ban: az állapotváltás időpontját menteni kell (millis() vagy micros() függvény), ha az utolsó változás óta eltelt több mint 1...2msec, akkor már nem prelleg, felhasználható az aktuális állapot.Én a legutóbbit haszánlom leggyakrabban, mert ehhez nem kell megszakítás, és ha a loop() nem katasztrofálisan lassú akkor stabil és jó megoldás. (még enkóder is kezelhető így, gyakorlatilag hibamentesen). Arra pedig mindíg érdemes törekedni, hogy a loop a lehető leggyorsabb legyen, (azaz pl. amennyire csak lehet kerüljük a delay()-t, és az egyéb lassú függvényeket).
-
bagarol
tag
byte gomb = 0;
void gombotnyom(){
gomb++; /* növeljük 1-el a gombnyomások számát */
}void loop() {
if (millis() - lastms > 500)
{
lastms = millis();
if (gomb) /* volt valamennyi gombnyomás */
{
gomb = 0;
gombNyomas++;
gombNyomas = gombNyomas%3 ;
Serial.println(gombNyomas); /* kiírjuk hány gombnyomásnál tartasz */
}
megnyomva();
}
} -
lanszelot
addikt
Huh, ez nekem magas. Nagyon kezdő vagyok még ehhez.
Az ellenállás nélkül, de úgy raktam be.
Tegnap azt írta vki vegyem ki az ellenállást, és 1-10 nano -s kondenzátort rakjak be. Azért úgy csináltam.Amit írtál azt nem értem. A kalkulátort se tudom hogy használjam.
Az addig ok, hogy berakok egy kondenzátort .
Ezt a debounce-t egyáltalán nem értem.80ms kevés a hőmérőnek. Minimum 270ms kell.
Nem tudom hol allitom az interrupt idejét. -
lanszelot
addikt
-
lanszelot
addikt
-
ReFleXx
addikt
mar miert nem lenne baj, szerinted akkor mi tortenik ha az 500as delay alatt kattint a gombbal? ha kiveszi akkor fog prellegni
itt az arduinos debounce tutorial: https://docs.arduino.cc/built-in-examples/digital/Debounce
-
lanszelot
addikt
Azt nem értem hogy ha sok kis kapcsolásnak érzékeli, akkor miért nem vált 1-et se. Hiába nyomkodom.
Erre írtam hogy nem a kapcsoló lesz a gond.Pl delay közben nyomom a gombot. Nem tudom hogy pontosan hogy futnak a programok. Így nem tudom nem az okoz e gondot.
De a delay kell a max6675 -nek. -
lanszelot
addikt
Hmmm, ez a baj. Nem tudtam a scope -ot.
Nem tudtam, hogy a loop -ból oda ki tud nyúlni.gombbal van most gond.
ha kikötöm, akkor is össze vissza nyomkodja magát. Azaz a gombnyomas valtozo értéke változik valamiért.#include <MQ135.h> /*gaz erzekelo, de nem kell neki igazabol*/
#include <Adafruit_SSD1306.h> /*oled display*/
#include <splash.h> /*oled display -nek kell*/
#include <max6675.h> /*homero*/
int thermoDO = 10; /*valtozo a homero DO pin -nek*/
int thermoCS = 9; /*valtozo a homero CS pin -nek*/
int thermoCLK = 8; /*valtozo a homero CLK pin -nek*/
int gombNyomas = 1; /*valtozo a gomb nyomas szamlalasara*/
int gombPin = 5; /*valtozo a gomb pin -nek*/
int gombAllapot = 0; /*valtozo a gomb allapot olvasasahoz*/
byte a = 0; /*valtozo a gaz erzekelo negyzet villogashoz*/
int sensorValue = analogRead(A0); /*valtozo a gaz erzekelo alalog pin -nek*/
int isgas = digitalRead(2); /*valtozo a gaz erzekelo digitalis pin -nek, ez arra kell, ha gas van akkor jelet ad, nem kell kulon erteket adni*/
String gas; /*valtozo a gaz erzekelo gas vagy no gas kiirasahoz*/
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
void mindenRajtaVan() {
display.clearDisplay(); /*this line to clear previous logo*/
display.setTextSize(1); /*text size 3*/
display.setCursor(3,0); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("Thermometer by Gabor");
display.setTextSize(2); /*text size 2*/
display.setCursor(10,20); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("C = ");
display.print(thermocouple.readCelsius());/*Celsius*/
display.setTextSize(1); /*text size 2*/
display.setCursor(10,40); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("F = ");
display.print(thermocouple.readFahrenheit());/*Fahrenheit*/
display.setTextSize(1); /*text size 2*/
display.setCursor(0,50); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("CO2 = ");
display.print(sensorValue);
display.print(" PPM ");
/*sensorValue < 90 ellenorzeshez, amugy igas valtozo kell ami a digitalis pin*/
if (sensorValue < 90) {gas = "No Gas";}
else {gas = " Gas";
if(a) {display.drawRoundRect(80, 47, 40, 15, 2, WHITE);} /*negyzet a gas felirat kore feher*/
else {display.drawRoundRect(80, 47, 40, 15, 2, BLACK);} /*negyzet a gas felirat kore fekete*/
a^=1;
}
display.print(gas);
display.display(); /*to shows or update your TEXT*/
}
void homeroVanRajta() {
display.clearDisplay(); /*this line to clear previous logo*/
display.setTextSize(1); /*text size 3*/
display.setCursor(3,0); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("Thermometer by Gabor");
display.setTextSize(2); /*text size 2*/
display.setCursor(10,20); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("C = ");
display.print(thermocouple.readCelsius());/*Celsius*/
display.setTextSize(1); /*text size 2*/
display.setCursor(10,40); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("F = ");
display.print(thermocouple.readFahrenheit());/*Fahrenheit*/
display.display(); /*to shows or update your TEXT*/
}
void gazVanRajta() {
display.clearDisplay(); /*this line to clear previous logo*/
display.setTextSize(1); /*text size 3*/
display.setCursor(3,0); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("Thermometer by Gabor");
display.setTextSize(1); /*text size 2*/
display.setCursor(0,50); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("CO2 = ");
display.print(sensorValue);
display.print(" PPM ");
/*sensorValue < 90 ellenorzeshez, amugy igas valtozo kell ami a digitalis pin*/
if (sensorValue < 90) {gas = "No Gas";}
else {gas = " Gas";
if(a) {display.drawRoundRect(80, 47, 40, 15, 2, WHITE);} /*negyzet a gas felirat kore feher*/
else {display.drawRoundRect(80, 47, 40, 15, 2, BLACK);} /*negyzet a gas felirat kore fekete*/
a^=1;
}
display.print(gas);
display.display(); /*to shows or update your TEXT*/
}
void setup() {
Serial.begin(9600); /*elindítja a sorosportot, 9600 baud beállítással. Ez azért jó, mert a Serial Monitoron a program futását tudod monitorozni*/
pinMode(gombPin, INPUT); /*inicializálja a gomb pin -jet inputnak*/
Serial.println("MAX6675 test");
/*wait for MAX chip to stabilize*/
delay(500);
/*SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally*/
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); /*Address 0x3C for 128x32*/
display.display();
delay(2000);
}
void loop() {
/*For the MAX6675 to update, you must delay AT LEAST 250ms between reads!*/
delay(500);
/*read the state of the pushbutton value:*/
gombAllapot = digitalRead(gombPin);
/*check if the pushbutton is pressed. If it is, the buttonState is HIGH:*/
if (gombAllapot == HIGH) {
gombNyomas++;
}
Serial.println(gombNyomas);
if (gombNyomas == 1) {
mindenRajtaVan();
} else if (gombNyomas == 2) {
homeroVanRajta();
} else if (gombNyomas == 3) {
gazVanRajta();
} else if (gombNyomas > 3) {
gombNyomas = 1;
}
}gombnyomas értéke:
MAX6675 test
1
2
2
2
3
3
4
2
2
3
4
1
2
2pedig nincs semmi az 5-ös pin-en.
Lehúztam.Amúgy hogyan kell a gombot helyesen bekötni?
Ahogy én gondoltam: negativ -> gomb -> 5-ös pin
Pozitív nélkül
Vagy nem földelni kell gombnyomáskor az 5-ös pint, hanem 3V vagy 5V-t adni neki gombnyomáskor? -
lanszelot
addikt
-
lanszelot
addikt
Már nem úgy müködik....hmmm
Ez fura. Pihent kicsit és mindegy hogy dugom, ugyanúgy működik.
A digispark-ba a vezetékeket, a pc-be a digispark-ot
Viszont vmi kondenzátor vagy valami megtartja az onboard led-et pár másodpercig kék vezeték lehúzás után, ha alapból világít az onboard led.De a lényeget megtudtam, hogy melyik melyik pin a kódban.
Köszönöm szépen a segítségetVégre jöhet a project amit kinéztem rá
-
lanszelot
addikt
"próbálom értelmezni," - ezért raktam be a linket, ahol ott a bekötési rajz
amúgy a piros vezeték: gomb és pozitív 5V boardról /ami fehér a pozitív, mert a pirost nem bírtam oda dugni, hogy ne ugorjon ki/ amikor a board-ot mutatom ott látszik a fehér hova van dugvaNem csinálhatok zárlatot, mert ahogy írtam, ha lehúzom a board-ot usb-ről, és PB4 -be dugva dugom vissza, akkor alapból nem világít, csak ha megnyomom a gombot akkor világít, ebben az esetben ha átdugom PB3-ra, akkor a bread board led világít folyamatosan, és gomb nyomásra elalszik.
Meg próbálom az asszonyt rávenni csináljunk új videót, hogy látsd -
lanszelot
addikt
Hello,
Volt egy kis időm, és a te módszereddel sikerült életet lehelni beleKét kérdésem lenne:
- Arduino progi : File -> preferences -> URL -hez lehetséges vlahogy több linket becsatolni?
Mert kell ennek a Digispark-nak, és a Nano -nak is kell.
Állandóan be kell másolgatnom amit épp rádugok.- ezzel a progival próbálgatom megtudjam melyik pin micsoda
/progin változtattam: led pin 1 , button pin 2/const int buttonPin = 2;
const int ledPin = 1;
Nekem a button - arduino vezetéken van egy led
Ha PB3 -ba dugom akkor a led-emet kontrollálom a gombbal
Ha PB4-be dugom az onboard led -et kontrollálom a gombbal
video róla bocsánata a minőségért, csak 2 kezem van
Hogy is van ez? Miért vált led-et, a program ugyanaz?
Az se mindegy melyikre dugom, mikor bedudom a Digisparkot usb-re.
Amelyik bedugáskor be van kötve az alapból kikapcsolt, és gomb nyomásra bekapcsol.
A másik fordítva, ahogy a videón is látszik.
De ha a másikkal dugom be először, akkor az lesz alapból kikapcsolt. -
KoVee84
senior tag
Csak a tesztelés miatt lett rossz ott az érték, egyébként minden név 7 napig jelenik meg, a Szelektív kuka felirat meg a 4. hét utolsó napján.
Nyilván lehet ezt sokkal jobban is csinálni, de az én programozó tudásommal ennek is nagyon örülök és majd nekiállok még csiszolgatni. Köszönöm az eddigi segítségeket!
-
lanszelot
addikt
Félre értettél.
Egyáltalán nem mondtam, hogy úgy kell ahogy a gyártó mondja.
Úgy néz ki én vagyok gyenge elméjű, és nem akartam marhaságokat írni ide.Amit szerettem volna:
Amikor megvettem a gyártó ígért: leírást, installalási útmutatót, példa programot, és ha bármi gond lenne segítséget.
Ezt a gyártó garantálja. És állítja hogy az úgy jó ahogy ő írja.
Meg is osztottam amit küldött pdf-et.
Amit sikerült valamennyire kibogoznom.A gond a pdf-el a sorrend.
Gyártó pdf szerinti sorrend:
+ installald az Arduino ide-t
+ Valaszd ki a board -odat
+ Válaszd ki a portot
+ Linkeld be a jsont
+ Installald a board managerben
+Installald a windows driver -tTehát a leges legvégén kell a drivert installálni.
Ez így szerintetek rendben van ez a sorrend?Mert így én nem tudtam felrakni.
Ezért írtam nekik, hogy hol rontottam el.
Még videót is küldtem róla, meg képeket.
Azt írták, hogy én nem tudok telepíteni és keressek valakit aki tud.
[kép]
Ha ennyire hülye vagyok akkor nem akartam itt marhaságokat írni.
Szerettem volna saját hibámat kizárni.
Ezért olvasgatok utána, de nem találom hol hibáztam. -
ReFleXx
addikt
illetve ha mar van wifi, akkor ki lehetne rakni a netre valahova egy tablazatot hogy adott heten ki a soros es azt lekerdezve irhatna ki a kapott nevet, ennek meglenne az az elonye, hogy tavolrol frissitheto a lista, nem kell ujra programozni az eszkozt ha valaki kimarad mert epp nyaral stb
-
lanszelot
addikt
ami még kimaradt:
board lista: [kép]
/első az uno miatt ami nekem nincs, de nem is értem minek az uno
másik board lista: [kép]
hiába van kiválasztva, nincs com port
com lista: [kép]
megvárom mit jelez vissza a gyártó.
hétvégéig úgy se nagyon van időm
pénteken majd neki ugrok, hogy a te két félédet is megpróbáljam
újra lett indítva a gép, tehát az se lehet hiba -
lanszelot
addikt
A gyártói leírást. Belinkeltem a pdf-et. Ott van minden lépés, bár össze vissza írták. Abban vannak a linkek is.
1.8.18
Még nem tudtam azokat próbálni, mert dolgozom. Ezért irtam, hogy pénteken fogom tudni próbálni, mert akkor már ünnep lesz és lesz időm
Hétközben nem nagyon van időm, max 10-15 perc. -
lanszelot
addikt
Más a driver
Uno-t kell kiválasztani
Bár nekem egyáltalán nem működik.
Eszközkezelőben ott van , de nincs com portja.
Illetve az Arduino -ban hibát dob:
"warning: non trusted contribution, skipping script execution (c:\users\lanszelot\appdata\local\arduino15\packages\digistump\tools\micronucleus\2.0a4\post_install.bat)"
Megpróbáltam manuálisan installálni arról a helyről, de hibát dob úgy is. -
lanszelot
addikt
Hello,
A gyártó küldött egy használati útmutatót.
Itt másképpen telepítik Arduino-ba.
Megosztom, hátha érdekel -
KoVee84
senior tag
Elvileg kész van, csak 5 nap alatt lezabálja a 18650-es aksit
4 családos társasházban lakunk, ahol minden héten másik család a "hetes" (kuka kirakás, lépcsőház felmosás, stb).
Csináltattam képkeretet, belekerül a Lilygo 18650-es akkuval, minden héten másik család neve jelenik meg, kiírja az akkufeszt, meg hogy mikor kell kirakni a szelektívet.A lilygo honalpján ezt írja azt írja, hogy Support PCF8563 RTC, ebből én valamiért nem arra gondoltam, hogy tudja az időkezelést.
Ha gondolod, akkor este szívesen átküldöm a kódot, de nyilván senkitől nem várom/várhatom el, hogy megcsinálja helyettem
-
lanszelot
addikt
Hello,
Ezeknek a pinout-oknak van valahol valami leírása kezdőnek?
Mert nem igazán vágom mi micsoda
[kép]
Az 5V és a gnd -t értem, a többit nem.
Usb az otg, és ki lehet valahogy kapcsolni, hogy használható pin-ek legyenek. Ez még nem érdekel, mert az alapokat se értem.
Vin, PB0-PB5-ig.
Egyedül a resetet értem. Költök rá egy gombot gnd-vel és gondolom ugyanaz mint a nano reset gombja, csak itt nincs a board-on, ezért így oldották meg.
A többiről fogalmam sincs. És amit találok leírást azok nem kezdőknek való. -
ReFleXx
addikt
Aki anno C-ben irta a kodot pl attiny-re, annak az arduinoban sokkal könnyebb dolga lesz, arrol nem beszelve hogy ezek a regi C kodok amiket pl AVR Studioban irt az ember azok siman lefordulnak a mostani Arduinoan is, de a mostani Arduino kodok mar nyilvan nem a libraryk nelkul.
Sajnos az Arduinoban megirt kodok nem a hatekonysagukrol es kicsi meretukrol hiresek, pl amig Arduinoban egy egyszeru Blink.ino leforditva 464 byte addig mindez egy regi, library nelkuli C-ben megirva es leforditva csupan 88 byte, azert az jelentos kulonbseg
Es meg ezen is lehetne faragni ha assemblyben lenne megirva eleve -
lanszelot
addikt
Köszönöm szépen
igen az Attiny85 volt az.
Közben megtaláltam a srác angol nyelvű csatornáját
jó kis indiai akcentus, de követhető.
Újra írható a Attiny85?
Vagy csak 1szer írható?
Veszek párat, és megpróbálom lekövetni amit csinál.
Hátha sikerül rádobni a gáz érzékelőt -
lanszelot
addikt
Nem, így értettem.
A kép: beirtam Google -ba "ic" első képet beraktam
Mint írtam a szakkörön annyit mondtak: ic-t ugyanúgy kell programozni mint az arduinot, a képen lévő ic -hez hasonlót rajzolt fel a táblára.
Többet nem tudok.
Amikor utána kerestem a videókon arduino-val ilyen alaku ic-ket programoznak.
Mivel indiai nyelven beszél egy szót se értek. És nem mutogatja el lépésenként.
Csak az arduino-t 8 vagy jóval több lábú ic -vel helyettesíti.
Bread bordba szúrja, össze kötögeti, és utana csak azt mutatja kész.
Tehát semmit.Fogalmam sincs milyen ic . Ezért kérdeztem itt , mert nem értek hozzá és azt se tudom hogy keressem
"From arduino to ic" ez nem segített.
Gondoltam van nyák lapom, és ic-vel össze dobnám a gáz érzékelőt, hogy olyat is lássak, hogy ic. Lehetne öröm bodottá.
Új hozzászólás Aktív témák
Hirdetés
- Apple iPhone 14 Pro Max 128GB, Kártyafüggetlen, 1 Év Garanciával
- Új Apple iPhone 16 Pro 128GB, Kártyafüggetlen, 3 Év Garanciával
- Honor Magic7 Lite 512GB, Kártyafüggetlen, 1 Év Garanciával
- Honor 400 lite 256GB, Kártyafüggetlen, 1 Év Garanciával
- HP Prodesk 600G4 SFF - i5-8500, 16GB DDR4, 512GB NVMe SSD, ATI R5 430 2GB eladó!
- Csere-Beszámítás! Számítógép PC Játékra! I5 14400F / RTX 4060ti 16GB / 32GB DDR5 / 1TB SSD
- Apple iPhone 14 Pro, Kártyafüggetlen, 1 Év Garanciával
- ÁRCSÖKKENTÉS LG 24" full HD LED IPS monitor (HDMI, DSUB, jack) eladó
- Csere-Beszámítás! AMD Számítógép PC Játékra! R5 5500 / RX 5700XT / 32GB DDR4 / 256SSD+1TB HDD
- Bomba ár! Lenovo ThinkPad X390: i5-G8 I 16GB I 256GB SSD I 13,3" FHD Touch I Cam I W11 I Gari!
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest