Keresés

Részletes keresés

szla0056 Creative Commons License 2017.02.15 0 0 2833

A 4 lábú doksijában beépítve szerepel a reset áramkör: 4,7k és 10mikroF.

"硬件复位电路,SSD1306在上电瞬间需要复位,才能正常工作"

"Hardver reset áramkör, SSD1306 a példányt be kell állítani, hogy a normál működés"

 

Furcsa, de a D/C láb ott fél-tápon van, egy ellenállás osztóval.

"The I2C slave address is 0x78. If the customer ties D/C# (pin 15) to VCC, the I2C slave address will be 0x7a" (Érdekes, ezt már angolul írták.)

Csatolom a rajzot is.

Előzmény: szla0056 (2832)
szla0056 Creative Commons License 2017.02.15 0 0 2832

Kép lemaradt:

Előzmény: szla0056 (2831)
szla0056 Creative Commons License 2017.02.15 0 0 2831

A 4 lábú verziónál (csak I2C) valóban nincs is reset láb. A 7 lábúnál van még RES, D/C és CS.

A resetre külön írta az eladó, hogy induláskor legalább 200msec-re legyen L, majd H. (Ez teljesül is az arduino resetjével.)  D/C és CS legyen L, R3-at átforrasztani R1 helyére. Ez utóbbi rendben is van.

A 11 oldalas doksiból idézve:

 

"七针模块正面丝印如下,大家在接线的时候要注意不要接错了;特别是想用IIC 接口的朋友们,
在IIC 接口中需要将RES 接高电平,可以与VCC 对接,使OLED 复位脚一直操持高电平,也就是不
复位的状态;同时需要将DC,CS 接电源地;此时IIC 通信中只需要GND ,VCC,D0(时钟信号),D1(数
据信号)四根线了。如果大家感觉这样比较麻烦;建议大家直接选用四针的IIC 接口模块。"

 

Ez nekem kínai. Na jó, mandarin. :-)

 

De gugli segít:

"Héttűs modul első szélvédő alatti, amikor mindenki a kábelezés elővigyázatosnak kell lennie, hogy ne vedd rossz, különösen, szeretné használni az IIC felület barátok,
Ebben IIC felületet kell csatlakoztatni a magas RES dokkolás a VCC, így OLED kezelni a RESET láb magas volt, ami nem
Reset, akkor is szükség van DC, CS csatlakoztatva a tápegység ezúttal IIC kommunikáció csak GND, VCC, D0 (órajel), D1 (szám
Adatok jel) négy sorban. Ha úgy érzi, ez túl nagy baj, azt sugallják, hogy egyszerűen használja a négy tűs IIC interfész modul."

 

Előzmény: Prof (2830)
Prof Creative Commons License 2017.02.14 0 0 2830

Szia!

Ezt a két reset láb összekötést honnan szedted?

I2C bekötés: táp (GND/+5), SDA, SCL, slussz. A reset más felálláshoz kellhet, de Arduino környezetben ez sokkal több problémát tud okozni kezdő szinten, mint amennyit megold.

Előzmény: szla0056 (2826)
Prof Creative Commons License 2017.02.14 0 0 2829

Szia!

Számomra nem egészen világos a feladat. Az kell, hogy akkor és csak akkor lehessen változtatni a led fényerejét, ha közben nyomod a gombot? Mert erre nem a potméter a megfelelő megoldás, hanem a rotary encoder, és teljesen más koncepción alapul a dolog.

Meg lehet oldani potméterrel is, de van hátránya (ha elállítod úgy, hogy nem nyomod a gombot, akkor a következő gombnyomásnál galibák adódhatnak a fényerővel). Ezt speciális alkatrészekkel és elég kompex programozással meg lehet ugyan oldani, de nem egyszerű feladat.

Rotary encoderrel az, eléggé.

Előzmény: ucs69 (2824)
Prof Creative Commons License 2017.02.14 0 0 2828

Ez egy elég jó megoldás lenne, feltéve, hogy a lednek csak akkor kellene világítania, amikor a gombot nyomjuk. De úgy lett, hogy 1. gombnyomás: led be. A 2.-tól n-1-dik gombnyomásnál ha a potmétert tekerem, a fényerő változik. 3. n-edik gombnyomásnál kikapcsol.

Előzmény: titusz99 (2825)
Törölt nick Creative Commons License 2017.02.14 0 0 2827

Jelenleg megmaradt egy lefagyás, kijáratásnál.

A fenti kapcsolások melyike csökkentené le jobban a hardweres esélyét?

void szabalyozas()
{
if(T7 > 55 && fusthofok > 130)
{

digitalWrite(LAKAS1,LOW );
digitalWrite(SZV1START,HIGH);
digitalWrite(PUFFER, HIGH);
}
else
{
if(T7 > 47)
{
digitalWrite(PUFFER, LOW);
digitalWrite(LAKAS1, HIGH);
digitalWrite(SZV1START, HIGH);
}
else
{
digitalWrite(PUFFER, LOW);
digitalWrite(LAKAS1, HIGH);
digitalWrite(SZV1START, LOW);
}
}
int sensorValue = analogRead(A3);
float LAKASFUTES = sensorValue * (5.0 / 1023.0);
if ( LAKASFUTES > 4 && szazalek >1)
{
digitalWrite(BYPASS, HIGH);
digitalWrite(LAKAS2, LOW); // 6. RELÉ 8d
digitalWrite(SZV2START, HIGH); // 2. RELÉ 4d
}
else
{
digitalWrite(LAKAS2, HIGH);
digitalWrite(BYPASS, LOW); // 5. RELÉ 7d
digitalWrite(SZV2START, LOW); // 2. RELÉ 4d
}
}

Előzmény: titusz99 (2825)
szla0056 Creative Commons License 2017.02.14 0 0 2826

Sziasztok!

Vettem egy 128*64-es OLED kijelzőt SSD1306 vezérlővel. 7 kivezetéses, elvileg tud I2C-t és 2 féle SPI-t (a BS0, BS1 lábakra adva 0-t vagy 1-et). Alapból SPI-re volt állítva. A leírás szerint I2C-nél az R3-at át kell forrasztani az R1 helyre, ekkor BS1=1, BS0=0). A DS és D/C lábak 0-án. RST rákötve az Arduino Nano resetére.

Azonban a kijelző semmilyen teszt programra nem jelez. AZ I2C scanner sem látja.

 

Használt már valaki ilyen 7 lábút? (Az előző sorozat 4 kivezetéssel csak I2C-t tudott.)

Rossz lehet a kijelző, vagy én nem használom jól ?

Előre is köszönöm.

 

titusz99 Creative Commons License 2017.02.14 0 0 2825

1. ledPin-t 10 ről 13-ra állitsd át.

2. Ez hibás:

 

{
 
 if (ledState == HIGH);
 sensorValue = analogRead(analogInPin);
 outputValue = map(sensorValue, 0, 1023, 0, 255);

 
}

Helyette:

 sensorValue = analogRead(analogInPin);
 if (ledState != HIGH)  sensorValue = 0;
 outputValue = map(sensorValue, 0, 1023, 0, 255);

 

 

Előzmény: ucs69 (2822)
ucs69 Creative Commons License 2017.02.13 0 0 2824

>Pontosan mi nem jó? Mit szeretnél, és mi történik helyette?

 

A következőt szeretném : nyomógomb megnyomása után világít az egy db led, és a led fényerejét egy potival szabályozni lehessen (PWM szabályzás). a nyomógomb újra lenyomása után a led kikapcsol, és ennyi.

 

Jelenleg, ha nincs megnyomva a nyomógomb, akkor is szabályozható a potival a led fényereje a nyomógombtól függetlenül.

Ha nyomógombot megnyomom, akkor világít a led, de nem reagál a potira.

Előzmény: Vargham (2823)
Vargham Creative Commons License 2017.02.13 0 0 2823

> de nem jó

Pontosan mi nem jó? Mit szeretnél, és mi történik helyette?

Előzmény: ucs69 (2821)
ucs69 Creative Commons License 2017.02.13 0 0 2822

const byte btnPin = 2; //(konstans) Ide van kotve a nyomogomb
const byte ledPin = 10; //(konstans) Ide van kotve a led
const int analogInPin = A0;
const int analogOutPin = 10;
byte btnState = HIGH;  //(valtozo) nyomobomb allapota
byte btnPreState = HIGH; //(valtozo) nyomobomb elozo allapota
byte ledState = LOW; //(valtozo) led allapota
int sensorValue = 0;
int outputValue = 0;

void setup() {
  // egyszer fut le (beallitasok)

pinMode(ledPin,OUTPUT); // LED kimenet
pinMode(btnPin, INPUT); // Nyomogomb bemenet

}

void loop()  // vegtelen ciklus
{

   btnState = digitalRead(btnPin); //beolvassuk a nyomogomb allapotat
 
  // most feldolgozzuk a nyomogombot
// megnezzuk hogy nyomjuk es nyomtuk e, valamint hogy mikor nyomtuk utoljara
// millis() belso fuggveny megmutatja az eszkoz futasi idejet  
 
 
  if (btnState == HIGH && btnPreState == LOW)
  {     
    
    if (ledState == HIGH)
        ledState = LOW;
     
    
    else
    ledState = HIGH;   
    
  }
    
 
 digitalWrite(ledPin, ledState);
   btnPreState = btnState;

{
 
 if (ledState == HIGH);
 sensorValue = analogRead(analogInPin);
 outputValue = map(sensorValue, 0, 1023, 0, 255);

 
}

 analogWrite(analogOutPin, outputValue);

 
 }

Előzmény: Prof (2820)
ucs69 Creative Commons License 2017.02.13 0 0 2821

A void Loop-nál akadtam el, megpróbáltam logikusan összehozni, de nem jó.

Délután bemásolom.

Előzmény: Prof (2820)
Prof Creative Commons License 2017.02.12 0 0 2820

Hol tartasz most?

Előzmény: ucs69 (2819)
ucs69 Creative Commons License 2017.02.12 0 0 2819

Köszönöm a jótanácsot! De már vagy 3 délútánt rászántam, és nem akar úgy működni, ahogy leírtam. Most kezdten el foglakozni az arduinoval, és még nem látom, még nem értem, hogyan tudom összegyúrni öket jól, ezért kértem a segítséget.

Előzmény: Prof (2817)
Törölt nick Creative Commons License 2017.02.12 0 0 2818

Üdv Mindenkinek

Innen letölthető az Ignis kijelző minta vezérlő programja arduinohoz. Ez pedig a forrás.

Jó bütykölést

Prof Creative Commons License 2017.02.12 0 0 2817

Szia,

Van három alap mintaprogram az Arduino IDE oktatási anyagában (Button, Fading és AnalogInput). Ezeket kell összegyúrni. Sokkal többet érsz vele, ha rászánod ezt a délutánt (estig meglesz), mintha valaki megírja helyetted 10-15 perc alatt.

Előzmény: ucs69 (2816)
ucs69 Creative Commons License 2017.02.12 0 0 2816

Szeretnék segítséget kérni arduino programozáshoz. Egy egyszerű programra lenne szükségem, de sehol nem találok ilyet.

A következő lenne : A nyomógombbal bekapcsoljuk a ledet. Amikor világít az 1 db led, akkor 1db potméterrel  szabályozzuk a fény erejét( PWM). És amikor a nyomógombbot újra nyomjuk, akkor a led kikapcsol. 

Előre is köszönöm.

 

Tomiali Creative Commons License 2017.02.08 0 0 2815

Szia. Köszi. Nézegettem a webszervert  de nekem még kínai. :(

Előzmény: balage8888 (2814)
balage8888 Creative Commons License 2017.02.07 0 0 2814

webserver az arduionon, a gepen meg idonkent lefut egy lekerdezes, ami menti az adatokat...

Előzmény: Tomiali (2808)
Törölt nick Creative Commons License 2017.02.07 0 0 2813

Fűtés végén kiderül, újra indít-e a wdt.

7 14 58 2

7 14 58 17
7 14 58 32
7 14 58 47
7 14 59 2
7 14 59 17
7 14 59 32
7 15 0 42 itt lett feltöltve az új kód
7 15 0 57
7 15 1 18 továbbra is 15 másodpercenként ír sd-re, nincs újra indítás.
7 15 1 33
7 15 1 48
7 15 2 3
7 15 2 18
7 15 2 33
7 15 2 48
7 15 3 3
7 15 3 18
7 15 3 33
7 15 3 48
7 15 4 3
7 15 4 18
7 15 4 33
7 15 4 48
7 15 5 3
7 15 5 18
7 15 5 33
7 15 5 48
7 15 6 3
7 15 6 18
7 15 6 33
7 15 6 48

Előzmény: titusz99 (2812)
titusz99 Creative Commons License 2017.02.07 0 0 2812

Erre szerintem nincs szükség:

t.every(8*1000, wdtreset); 8 másodpercenként reseteli wdt-ert

 

Hiszen a loop-ba beteszed a wdtresetet és kész.

 

 

Egyébként szerintem állandóan újraindul a rendszered vagy nagyon határesetben működik.

 

Előzmény: Törölt nick (2811)
Törölt nick Creative Commons License 2017.02.07 0 0 2811

A program futása a fűtés vége felé megakad, a kazán szivattyú üzemel, de nem állítja le a hőfok visszaesése.

A wdt beszúrása működne, ha egyébként működik:

kiolvas_t();

t.every(5*1000, kiolvas_t); //5 másodpercenként
t.every(5*1000, serial_print); //5 másodpercenként
t.every(15*1000, sd_iras); //15 másodpercenként
t.every(6*1000, szabalyozas); //6 másodpercenként
t.every(4*1000, lcd0); //sorban 4 másodpercenként a 4 kijelzési kép
t.every(8*1000, wdtreset); 8 másodpercenként reseteli wdt-ert

pinMode(A0, OUTPUT);
SD.begin(A0);
if (!SD.begin(A0)) {

Serial.println(F("initialization failed!"));
return;

}
Serial.println(F("initialization done."));

if (SD.exists("datalog.csv")) {
Serial.println(F("datalog.csv exists."));
}
else {
Serial.println(F("datalog.csv doesn't exist."));
}
wdt_enable(WDTO_8S);
}
void loop()
{
t.update();
}
void lcd0()
{
static int c = 0;
if (c==0) lcd_idopont();
if (c==1) lcd_puffer();
if (c==2) lcd_teljesitmeny();
if (c==3) lcd_fusthofok();
c=(c+1) % 4;
}

Előzmény: titusz99 (2795)
Zizikus Creative Commons License 2017.02.04 0 0 2810

Itt egy teljes program VB.Net-re. Nem próbáltam, csak mutatom, hogy lehet sajátot is csinálni.

 

http://www.martyncurrey.com/arduino-and-visual-basic-part-1-receiving-data-from-the-arduino/

Erre kerestem rá:

 

"serial communication between PC and Arduino vb.net"

 

Persze más nyelvekre is jó.

Előzmény: Tomiali (2808)
Zizikus Creative Commons License 2017.02.04 0 0 2809

Szia

 

Ha jól emlékszem, akkor egyszerűen nem, de lehet írni kis programokat erre a célra, vagy esetleg soros terminált, vagy ahhoz hasonló programmal megoldhatod.

A serialprint utasítások a sorosportra írnak, szóval a mai VS rendszerben pl elég könnyen lehet íni olyan programot, ami figyeli a megadott portot, és ha jön adat akkor rögzíti.

 

De lehet jönnek mások, akik már megoldották ezt.

Előzmény: Tomiali (2808)
Tomiali Creative Commons License 2017.02.04 0 0 2808

Sziasztok.

Össze van kötve az arduinom egy számítógéppel hőmérsékleteket mérek. Meg lehet valahogy oldani, hogy időnként mentse az adatokat a gépre?

 

Köszönöm

Prof Creative Commons License 2017.01.30 0 0 2807

Műszerdoboz, kötőszekrény, fa doboz (DIY), a kijelző köré pedig keret (rendszerint mindent kapni).

Előzmény: gibsongityo (2806)
gibsongityo Creative Commons License 2017.01.30 0 0 2806

Sziasztok

 

Érdekelne milyen burkolatokat tudtok 2 és 4 soros kijelzőhöz 

 

Ilyeneket tennék fel a falra és jó lenne valami faja burkolat 

 

 

 

Tomiali Creative Commons License 2017.01.28 0 0 2805

Köszi meg nézem.

Előzmény: halaloszto (2804)
halaloszto Creative Commons License 2017.01.27 0 0 2804

olvass utánna a PID szabályozás témának. Amit leírsz, az a D belóle. neked egy PD is elég. 

 

az is jó lehet, ha keresel egy arduino PID példaprogramot, és játszol kicsit a paraméterekkel.

 

Vajk

Előzmény: Tomiali (2803)

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