Keresés

Részletes keresés

titusz99 Creative Commons License 2017.02.21 0 0 2850

Mert párban kell lenniük.

 

{    }

Előzmény: ucs69 (2849)
ucs69 Creative Commons License 2017.02.21 0 0 2849

Szia titusz99!

 

Köszönöm, működik,

A legvégén miért van 2 kacsacsőr ?

Előzmény: titusz99 (2848)
titusz99 Creative Commons License 2017.02.21 0 0 2848

// potmétert tekergetheted bármikor

// Ha nyomod a gombot világít potmétertől függően

// Ha nem nyomod nem világít

 

void loop(){

  sensorValue = analogRead(analogInPin);
  outputValue = map(sensorValue, 0, 1023, 0, 255);

  if (digitalRead(buttonPin) ==HIGH) {
     digitalWrite(ledPin, HIGH);
     analogWrite(analogOutPin, outputValue);

  }
  else {
     digitalWrite(ledPin, LOW);
     analogWrite(analogOutPin, 0);
  }
}

 

 

 

Előzmény: ucs69 (2847)
ucs69 Creative Commons License 2017.02.21 0 0 2847

Aludjon el.

Előzmény: titusz99 (2846)
titusz99 Creative Commons License 2017.02.21 0 0 2846

És ha nem nyomod maradjon utolsó helyzetben vagy aludjon el?

Előzmény: ucs69 (2845)
ucs69 Creative Commons License 2017.02.21 0 0 2845

Csak annyi, hogy ha nyomom a nyomógombot folyamatosan  csak akkor működjön a potis szabályzás.

Az előző pedig a nyomógomb egyszeri lenyomása után bekapcsolt (és működik a potis szabályzás), következő lenyomáskor kikapcsolt .

Előzmény: titusz99 (2844)
titusz99 Creative Commons License 2017.02.21 0 0 2844

Hát nem csodálom!

Fenekestül felfordítottad.

Mi volt a célja a módosításnak?

Előzmény: ucs69 (2843)
ucs69 Creative Commons License 2017.02.20 0 0 2843

Szia titusz99 !

 

Picit módosítottam a programon, de megint nem működik jól. (a potis szabályzás nem megy)

Megnéznéd, hogy mi a baj vele ?

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

 

const byte buttonPin = 2;
const byte ledPin = 13;
const int analogInPin = A0;
const int analogOutPin = 10;
int sensorValue = 0;
int outputValue = 0;

void setup(){
  pinMode(buttonPin, INPUT);
  pinMode(ledPin, OUTPUT);
  pinMode(analogOutPin, OUTPUT);
}
void loop(){

  if(digitalRead(buttonPin) ==HIGH)
{
  digitalWrite(ledPin, HIGH);
}

else
digitalWrite(ledPin, LOW);
{
 sensorValue = analogRead(analogInPin);
 if (ledPin != HIGH)  sensorValue = 0;
 outputValue = map(sensorValue, 0, 1023, 0, 255);
 

 }
 

 
 analogWrite(analogOutPin, outputValue);

}

Törölt nick Creative Commons License 2017.02.17 0 0 2842

 

Semmi különös nem történt, mondhatni nyugalmi állapotban volt a rendszer, és egyszerűen lefagyott, a wdt nem resetelt.

Kell egy külső wdt.

Előzmény: Törölt nick (2840)
Kelemmeh Creative Commons License 2017.02.17 0 1 2841

Sziasztok ! Adott a saját méhészetem, szeretném kutatni a méhek álltal előállitott hang rezgés hullámait. Arra gondoltam felszerelnék 4-5 kaptárt mikrofonokkal és ezek adatainak begyüjtése össze futna sz Arduino rendszerbe. Segítsetek hogy hogyan tudom a több mikrofonos kezelést megoldani és melyik panelokat ajánjátok. Kutatásom során több mindenre esetleg fény derülne. Pl: betegség jelenléte, rajzás, anya állapot stb. mivel a család állapota megváltozik így másképp viselkednek akár hang és rezgés hullámokban. Ebben az évben szeretném megvalósitani akár folyamatos monitorozás. Köszönöm.

Törölt nick Creative Commons License 2017.02.16 0 0 2840

Egyszerre töltöttem bootloadert a nanokra, az averdude szerint a többin engedélyezve van.

Még mindig lefagyás nélkül megy a vezérlőben levő.

Nem szeretem az ilyen rejtélyes működést, szezon után stabilabbra kell alakítani, esetleg jöhet egy nagyobb lappal, mega2560 alapon.

Gondolom a nagyobb kapacitás rosszat nem tesz a rendszernek.

Előzmény: titusz99 (2839)
titusz99 Creative Commons License 2017.02.16 0 0 2839

A hibát nem a programrészlet okozza.

A wdt biztosan működik?

SSR:

Az első kép igazából egy SSR belső kapcsolása.

Ami fontos szokott lenni az a snubber (Soros R-C párhuzamosan az érintkezőkkel).

A legtöbb SSR tartalmaz, valamelyiket ki kell egészíteni vele.

 

Előzmény: Törölt nick (2837)
ucs69 Creative Commons License 2017.02.15 0 0 2838

Szia Titusz99 !

 

Köszönöm, tökéletesen működik.

 

 

Üdv.,

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

Az elején: kettő napja automatában megy a rendszer és nincs lefagyás...

A kijáratás azt jelenti, hogy a füsthőfok < 130C, T7 > 55C ekkor a puffer felé dolgozik a kazán szivattyú (SZV1), ha T7 > 47C a lakás felé.

Ebben az utóbbi lépésben fagy le, a szivattyú dolgozik a lakás felé, az lcd valamelyik kijelzésen áll.

Vagy mint jelen helyzetben nem fagy le.

Most nézegettem a tartalék nano-kat, mindegyiken engedélyezve van a wdt, az éppen üzemelőn talán, azt meg kell nézni.

Úgy tűnik, nem resetel a wdt, vagy rossz helyen van beszúrva.

Csak azt nem értem a kis kínaiakban ezt hogyan oldják meg, a füstgáz vezérlő ilyen szinten még soha sem fagyott le.

A reléket SSR-re cseréltem, a második kapcsolás szerint, azért kérdeztem, az első mivel több, stabilabb, vagy semmi előnye?

Előzmény: titusz99 (2836)
titusz99 Creative Commons License 2017.02.15 0 0 2836

Miben nyilvánul meg a lefagyás?

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

wdt aktiválódik?

Emlékeim szerint lecserélted ssr-re a reléket, vagy összekeverlek mással.

 

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

Átnéztem, és nem találom azt a problémát amit jeleztél.

A kimenetet a ledState vezérli.

A ledState állapotot vált a gombnyomás LOW->HIGH esetén.

Egyetlen probléma marad csak, hogy elég sűrű az analogWrite hívása.

Lehet, hogy csak akkor kellene meghívni, ha változik a potméter állása.

Előzmény: Prof (2828)
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)

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