Home | Community | Message Board


This site includes paid links. Please support our sponsors.


Welcome to the Shroomery Message Board! You are experiencing a small sample of what the site has to offer. Please login or register to post messages and view our exclusive members-only content. You'll gain access to additional forums, file attachments, board customizations, encrypted private messages, and much more!

Shop: Unfolding Nature Unfolding Nature: Being in the Implicate Order   Myyco.com Golden Teacher Liquid Culture For Sale

Jump to first unread post Pages: | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
Some of these posts are very old and might contain outdated information. You may wish to search for newer posts instead.
Re: !!Arduino programer needed!! [Re: bogdancev]
    #26286216 -

Also, not to burn more stuff, if you are not sure make front and back pictures in the best quality you can.
I'll look through it, maybe I'll pick up some dangerous mistakes.

Extras: Filter Print Post Top
Re: !!Arduino programer needed!! [Re: bogdancev]
    #26286282 -

Yea I did that with the heat gun trying to desolder the LCD Then the heat gun Broke so I sent that back. I have never had bad luck like this.

Extras: Filter Print Post Top
Re: !!Arduino programer needed!! [Re: SHROOMSISAY01]
    #26286975 -

Got all 4 buttons. Now it looks cool.


Extras: Filter Print Post Top
Re: !!Arduino programer needed!! [Re: bogdancev]
    #26292417 -

Ok, I can't get the buttons to work. I press the mode button nothing happens. The buttons are working and hooked up. It did work one time. But it won't work now. I am going to have to see if I can figure it out. I have no idea what the problem could be all the connections are correct.

Extras: Filter Print Post Top
Re: !!Arduino programer needed!! [Re: SHROOMSISAY01]
    #26292482 -

Now the mode button takes it into this screen...



The down button moves the cursor up and then down the up button does not seem to do anything. When I press the select button it takes me out of the screen like I am pressing the mode button.

Extras: Filter Print Post Top
Re: !!Arduino programer needed!! *DELETED* [Re: SHROOMSISAY01]
    #26293045 -

Post deleted by Phycus

Reason for deletion: too many responses. these two should be messaging instead of commenting on a thread repeatedly


--------------------
disclaimer - nothing i post is real. this account is for fictitious purposes and posts should not be taken literally

Edited by Phycus (11/01/19 09:50 PM)

Extras: Filter Print Post Top
Re: !!Arduino programer needed!! [Re: Phycus]
    #26293051 -

Thanks for the response I am using the same one bogdancev made he said his is working so I don't know why I am having a problem. here is the code...

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <EEPROM.h>
#include <avr/wdt.h>

//Uncomment if you are in USA
//#define Fahrenheit

#define POLL_COUNT    (4)
#define POLL_BASE    (60)

const int RELAY = 0;
const int MODE = 9, UP = 12, DOWN = 11, SELECT = 10;

//CRC-8 (x^8 + x^5 + x^4 + 1) lookup table
static const byte CRC_8_TABLE[256] =
{
    0x00, 0x31, 0x62, 0x53, 0xC4, 0xF5, 0xA6, 0x97, 0xB9, 0x88, 0xDB, 0xEA, 0x7D, 0x4C, 0x1F, 0x2E,
    0x43, 0x72, 0x21, 0x10, 0x87, 0xB6, 0xE5, 0xD4, 0xFA, 0xCB, 0x98, 0xA9, 0x3E, 0x0F, 0x5C, 0x6D,
    0x86, 0xB7, 0xE4, 0xD5, 0x42, 0x73, 0x20, 0x11, 0x3F, 0x0E, 0x5D, 0x6C, 0xFB, 0xCA, 0x99, 0xA8,
    0xC5, 0xF4, 0xA7, 0x96, 0x01, 0x30, 0x63, 0x52, 0x7C, 0x4D, 0x1E, 0x2F, 0xB8, 0x89, 0xDA, 0xEB,
    0x3D, 0x0C, 0x5F, 0x6E, 0xF9, 0xC8, 0x9B, 0xAA, 0x84, 0xB5, 0xE6, 0xD7, 0x40, 0x71, 0x22, 0x13,
    0x7E, 0x4F, 0x1C, 0x2D, 0xBA, 0x8B, 0xD8, 0xE9, 0xC7, 0xF6, 0xA5, 0x94, 0x03, 0x32, 0x61, 0x50,
    0xBB, 0x8A, 0xD9, 0xE8, 0x7F, 0x4E, 0x1D, 0x2C, 0x02, 0x33, 0x60, 0x51, 0xC6, 0xF7, 0xA4, 0x95,
    0xF8, 0xC9, 0x9A, 0xAB, 0x3C, 0x0D, 0x5E, 0x6F, 0x41, 0x70, 0x23, 0x12, 0x85, 0xB4, 0xE7, 0xD6,
    0x7A, 0x4B, 0x18, 0x29, 0xBE, 0x8F, 0xDC, 0xED, 0xC3, 0xF2, 0xA1, 0x90, 0x07, 0x36, 0x65, 0x54,
    0x39, 0x08, 0x5B, 0x6A, 0xFD, 0xCC, 0x9F, 0xAE, 0x80, 0xB1, 0xE2, 0xD3, 0x44, 0x75, 0x26, 0x17,
    0xFC, 0xCD, 0x9E, 0xAF, 0x38, 0x09, 0x5A, 0x6B, 0x45, 0x74, 0x27, 0x16, 0x81, 0xB0, 0xE3, 0xD2,
    0xBF, 0x8E, 0xDD, 0xEC, 0x7B, 0x4A, 0x19, 0x28, 0x06, 0x37, 0x64, 0x55, 0xC2, 0xF3, 0xA0, 0x91,
    0x47, 0x76, 0x25, 0x14, 0x83, 0xB2, 0xE1, 0xD0, 0xFE, 0xCF, 0x9C, 0xAD, 0x3A, 0x0B, 0x58, 0x69,
    0x04, 0x35, 0x66, 0x57, 0xC0, 0xF1, 0xA2, 0x93, 0xBD, 0x8C, 0xDF, 0xEE, 0x79, 0x48, 0x1B, 0x2A,
    0xC1, 0xF0, 0xA3, 0x92, 0x05, 0x34, 0x67, 0x56, 0x78, 0x49, 0x1A, 0x2B, 0xBC, 0x8D, 0xDE, 0xEF,
    0x82, 0xB3, 0xE0, 0xD1, 0x46, 0x77, 0x24, 0x15, 0x3B, 0x0A, 0x59, 0x68, 0xFF, 0xCE, 0x9D, 0xAC
};

Adafruit_SSD1306 display(128, 32, &Wire, 4);

float result;
byte low, high;
unsigned int rawResult;
byte bufferRaw[3], CRC;
int loopCounter, mode, selectRow, index, relayOutput;
int modeCount, upCount, downCount, selectCount;
bool modePressed, upPressed, downPressed, selectPressed;

void setup() {
  pinMode(RELAY, OUTPUT);
  pinMode(MODE, INPUT_PULLUP);
  pinMode(UP, INPUT_PULLUP);
  pinMode(DOWN, INPUT_PULLUP);
  pinMode(SELECT, INPUT_PULLUP);
 
  low = EEPROM.read(0);
  high = EEPROM.read(1);
  if(255 == low) low = 40;
  if(255 == high) high = 50;
  relayOutput = 0; //Default is off
  loopCounter = 0;
  mode = 0, selectRow = 0;
  modeCount = POLL_BASE, upCount = POLL_BASE, downCount = POLL_BASE, selectCount = POLL_BASE;
 
  Wire.begin();
  Wire.setClock(10000);

  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.cp437(true);

  wdt_enable(WDTO_4S);
}

void loop() {
  pollButtons();
  loopCounter++;
  delay(10);
 
  processMode();
  processSelect();
  processUp();
  processDown();
 
  if(40 != loopCounter) return; 
  loopCounter = 0;
  wdt_reset();

  display.clearDisplay(); 
  if(0 == mode) processMainScreen();
  if(1 == mode) processSetupScreen();
  display.display();
}

void processMode() {
  if(!modePressed) return;
 
    modePressed = false;
    if(0 == mode) {
      mode = 1;
      return;
    }
    if(1 == mode) {
      mode = 0;
      if(low != EEPROM.read(0)) EEPROM.write(0, low);
      if(high != EEPROM.read(1)) EEPROM.write(1, high);
      return;
    }
}

void pollButtons() {
  //----Mode button----------------------------------- 
  if(LOW == digitalRead(MODE)) modeCount++;
  else modeCount = POLL_BASE;
 
  if((POLL_BASE + POLL_COUNT) <= modeCount)
  {
      modePressed = true;
      modeCount = 0;
  }

  //----Up button-------------------------------------
  if(LOW == digitalRead(UP)) upCount++;
  else upCount = POLL_BASE;
 
  if((POLL_BASE + POLL_COUNT) <= upCount)
  {
      upPressed = true;
      upCount = 0;
  }
 
  //----Down button-----------------------------------
  if(LOW == digitalRead(DOWN)) downCount++;
  else downCount = POLL_BASE;
 
  if((POLL_BASE + POLL_COUNT) <= downCount)
  {
      downPressed = true;
      downCount = 0;
  }
 
  //----Select button---------------------------------
  if(LOW == digitalRead(SELECT)) selectCount++;
  else selectCount = POLL_BASE;
 
  if((POLL_BASE + POLL_COUNT) <= selectCount)
  {
      selectPressed = true;
      selectCount = 0;
  }
}

void processUp() {
  if(!upPressed) return;
  upPressed = false;
  if(0 == mode) return;

  if(0 == selectRow) {
    high++;
    if(101 <= high) high = 0;
  }
  else {
    low++;
    if(101 <= low) low = 0;
  }
}

void processDown() {
  if(!downPressed) return;
  downPressed = false;
  if(0 == mode) return;

  if(0 == selectRow) {
    high--;
    if(255 == high) high = 100;
   
  }
  else {   
    low--;
    if(255 == low) low = 100;
  }
}

void processSelect() {
  if(!selectPressed) return;
 
  selectPressed = false;
  if(0 == mode) selectRow = 0;
  if(1 == mode) {
    if(0 == selectRow) {
      selectRow = 1;
      return;
    }
    if(1 == selectRow) {
      selectRow = 0;
      return;
    }
  }
}

void processMainScreen() { 
  getRH();

  if(low > result) relayOutput = 1;
  if(high < result) relayOutput = 0;
  digitalWrite(RELAY, relayOutput);
   
  getTemperature();
}

void processSetupScreen() {
  display.setCursor(100, selectRow * 16);
  display.print((char)27);
 
  display.setCursor(0, 0);
  display.print(F("H: "));
  display.print(high);

  display.setCursor(0, 16);
  display.print(F("L: "));
  display.print(low);
}

void getRH() {
  //Triggering RH measurement
  Wire.beginTransmission(0x40);
  Wire.write(0xE5);
  Wire.endTransmission();

  //Requesting result (3 bytes: 2 bytes for value and 1 for checksum)
  Wire.requestFrom(0x40, 3);
  index = 2;
  while(Wire.available()) {
    bufferRaw[index] = Wire.read();
    if(0 == index) {
      //Trying to display result if it's correct
      showRH();
      break;
    }
    index--;
  }
}

void getTemperature() {
  //Triggering temperature measurement
  Wire.beginTransmission(0x40);
  Wire.write(0xE3);
  Wire.endTransmission();

  //Requesting result (3 bytes: 2 bytes for value and 1 for checksum)
  Wire.requestFrom(0x40, 3);
  index = 2;
  while(Wire.available()) {
    bufferRaw[index] = Wire.read();
    if(0 == index) {
      //Trying to display result if it's correct
      showTemperature();
      break;
    }
    index--;
  }
}

void showRH() {
  display.setCursor(10, 0);
  if(checkChecksum(bufferRaw[2], bufferRaw[1], bufferRaw[0])) {
    rawResult = (bufferRaw[2] << 8) | (bufferRaw[1] & B11111100);
    result = rawResult * 125.0 / 65536.0 - 6.0;
    display.print(F("RH:"));
    display.print(result, 1);
    display.print(F("%"));
  }
  else
    display.print(F("RH: error"));
}

void showTemperature() { 
  display.setCursor(10, 16);
  if(checkChecksum(bufferRaw[2], bufferRaw[1], bufferRaw[0])) {
    rawResult = (bufferRaw[2] << 8) | (bufferRaw[1] & B11111100);
    result = rawResult * 175.72 / 65536.0 - 46.85;
   
    #ifdef Fahrenheit
      result = result * 1.8 + 32.0;
    #endif
   
    display.print(F(" T:"));
    display.print(result, 1);

    #ifdef Fahrenheit
      display.print(F("F"));
    #else
      display.print(F("C"));
    #endif
  }
  else
    display.print(F("Temp: error"));
}

bool checkChecksum(byte MSB, byte LSB, byte checksum) {
  CRC = 0;
  CRC = CRC_8_TABLE[CRC ^ MSB];
  CRC = CRC_8_TABLE[CRC ^ LSB];
  if(CRC == checksum) return true;
  return false;
}

Extras: Filter Print Post Top
Re: !!Arduino programer needed!! [Re: SHROOMSISAY01]
    #26293289 -

Lets understand one function at a time.

When you press "MODE" button it goes into setup screen (you said it does that). Does it go back into showing RH and T readings when you press it again?

Basically every time you press "MODE" it toggles readings screen and setup screen.
Can you confirm that this is working?

Extras: Filter Print Post Top
Re: !!Arduino programer needed!! *DELETED* [Re: SHROOMSISAY01]
    #26293571 -

Post deleted by Phycus

Reason for deletion: same as above


--------------------
disclaimer - nothing i post is real. this account is for fictitious purposes and posts should not be taken literally

Extras: Filter Print Post Top
Re: !!Arduino programer needed!! [Re: bogdancev]
    #26293615 -

Here is a video how my buttons work.
Buttons are from left to right: MODE, UP, DOWN, SELECT

See how MODE toggles screen.
See how SELECT toggles arrow.
See how UP and DOWN increase and decrease a value to which arrow is pointed.



But first, check MODE button as suggested in my previous post.

Extras: Filter Print Post Top
Re: !!Arduino programer needed!! [Re: Phycus]
    #26293626 -

Quote:
just like any typical rasPi and arduino, this is in c# which is easy to understand through the if/when and if/else statements. your integer parameters are correct for your range it seems. my suggestion after reading more of your post is this : you have likely caused a short on your board from messing with the soldering, which you can only fix by removing layers from your board, interrupting connections through short-circuiting paths which is going to be a waste of your time unless you really just want to learn how to rebuild a board the hard way, in which case you have a lot more reading to do then just on the shroomery. simply put... this is done. go order another Pi set with an lcd screen (about 50 bucks) and download this program. this is also an awesome opportunity for you to learn about open-sourced programming which uses a variety of unix-linux based shells (bourne and kali being the main two for pi's i believe) and before you know it, youll be able to do all sorts of shit on open sourced or linux machines (like programming on a mac and pc's alike). you can build a whole home media machine with a pi in a relatively short amount of time (LAN network so you dont have to worry about hacking/penetration) hope this helps, i hate to see people frustrated over something that is not that hard to understand once you get into it



This is not C#, this is not Pi.
Our aim is to test the sensor so we used the cheapest hardware (Arduino Uno, OLED and mechanical buttons).
Once and if we prove that HTU21 sensor works OK, then we may or may not go with fancy hardware.

Extras: Filter Print Post Top
Re: !!Arduino programer needed!! [Re: bogdancev]
    #26293646 -

lol.


--------------------
disclaimer - nothing i post is real. this account is for fictitious purposes and posts should not be taken literally

Edited by Phycus (11/02/19 08:38 AM)

Extras: Filter Print Post Top
Re: !!Arduino programer needed!! [Re: Phycus]
    #26294211 -

I checked all my solder joints and made sure there were no cold solders or any joints connecting that should not be connecting. Everything is ok as far as I can tell. The mode and select buttons do the same thing. The up button does nothing. I don't know how you have it set up. So the up button may only adjust the number up. So I don't know if it is working. Can you upload the code you are using one more time? Because I have gone over everything on my end and everything looks OK. I think it is in the code but I could be wrong. Could it have something to do with me using the r3 uno and you using the r2? I don't think that is the problem but I thought I would ask.


Extras: Filter Print Post Top
Re: !!Arduino programer needed!! [Re: SHROOMSISAY01]
    #26294220 -

First my code (but I did not change anything):

Code:

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <EEPROM.h>
#include <avr/wdt.h>

//Uncomment if you are in USA
//#define Fahrenheit

#define POLL_COUNT (4)
#define POLL_BASE (60)

const int RELAY = 0;
const int MODE = 9, UP = 12, DOWN = 11, SELECT = 10;

//CRC-8 (x^8 + x^5 + x^4 + 1) lookup table
static const byte CRC_8_TABLE[256] =
{
0x00, 0x31, 0x62, 0x53, 0xC4, 0xF5, 0xA6, 0x97, 0xB9, 0x88, 0xDB, 0xEA, 0x7D, 0x4C, 0x1F, 0x2E,
0x43, 0x72, 0x21, 0x10, 0x87, 0xB6, 0xE5, 0xD4, 0xFA, 0xCB, 0x98, 0xA9, 0x3E, 0x0F, 0x5C, 0x6D,
0x86, 0xB7, 0xE4, 0xD5, 0x42, 0x73, 0x20, 0x11, 0x3F, 0x0E, 0x5D, 0x6C, 0xFB, 0xCA, 0x99, 0xA8,
0xC5, 0xF4, 0xA7, 0x96, 0x01, 0x30, 0x63, 0x52, 0x7C, 0x4D, 0x1E, 0x2F, 0xB8, 0x89, 0xDA, 0xEB,
0x3D, 0x0C, 0x5F, 0x6E, 0xF9, 0xC8, 0x9B, 0xAA, 0x84, 0xB5, 0xE6, 0xD7, 0x40, 0x71, 0x22, 0x13,
0x7E, 0x4F, 0x1C, 0x2D, 0xBA, 0x8B, 0xD8, 0xE9, 0xC7, 0xF6, 0xA5, 0x94, 0x03, 0x32, 0x61, 0x50,
0xBB, 0x8A, 0xD9, 0xE8, 0x7F, 0x4E, 0x1D, 0x2C, 0x02, 0x33, 0x60, 0x51, 0xC6, 0xF7, 0xA4, 0x95,
0xF8, 0xC9, 0x9A, 0xAB, 0x3C, 0x0D, 0x5E, 0x6F, 0x41, 0x70, 0x23, 0x12, 0x85, 0xB4, 0xE7, 0xD6,
0x7A, 0x4B, 0x18, 0x29, 0xBE, 0x8F, 0xDC, 0xED, 0xC3, 0xF2, 0xA1, 0x90, 0x07, 0x36, 0x65, 0x54,
0x39, 0x08, 0x5B, 0x6A, 0xFD, 0xCC, 0x9F, 0xAE, 0x80, 0xB1, 0xE2, 0xD3, 0x44, 0x75, 0x26, 0x17,
0xFC, 0xCD, 0x9E, 0xAF, 0x38, 0x09, 0x5A, 0x6B, 0x45, 0x74, 0x27, 0x16, 0x81, 0xB0, 0xE3, 0xD2,
0xBF, 0x8E, 0xDD, 0xEC, 0x7B, 0x4A, 0x19, 0x28, 0x06, 0x37, 0x64, 0x55, 0xC2, 0xF3, 0xA0, 0x91,
0x47, 0x76, 0x25, 0x14, 0x83, 0xB2, 0xE1, 0xD0, 0xFE, 0xCF, 0x9C, 0xAD, 0x3A, 0x0B, 0x58, 0x69,
0x04, 0x35, 0x66, 0x57, 0xC0, 0xF1, 0xA2, 0x93, 0xBD, 0x8C, 0xDF, 0xEE, 0x79, 0x48, 0x1B, 0x2A,
0xC1, 0xF0, 0xA3, 0x92, 0x05, 0x34, 0x67, 0x56, 0x78, 0x49, 0x1A, 0x2B, 0xBC, 0x8D, 0xDE, 0xEF,
0x82, 0xB3, 0xE0, 0xD1, 0x46, 0x77, 0x24, 0x15, 0x3B, 0x0A, 0x59, 0x68, 0xFF, 0xCE, 0x9D, 0xAC
};

Adafruit_SSD1306 display(128, 32, &Wire, 4);

float result;
byte low, high;
unsigned int rawResult;
byte bufferRaw[3], CRC;
int loopCounter, mode, selectRow, index, relayOutput;
int modeCount, upCount, downCount, selectCount;
bool modePressed, upPressed, downPressed, selectPressed;

void setup() {
pinMode(RELAY, OUTPUT);
pinMode(MODE, INPUT_PULLUP);
pinMode(UP, INPUT_PULLUP);
pinMode(DOWN, INPUT_PULLUP);
pinMode(SELECT, INPUT_PULLUP);

low = EEPROM.read(0);
high = EEPROM.read(1);
if(255 == low) low = 40;
if(255 == high) high = 50;
relayOutput = 0; //Default is off
loopCounter = 0;
mode = 0, selectRow = 0;
modeCount = POLL_BASE, upCount = POLL_BASE, downCount = POLL_BASE, selectCount = POLL_BASE;

Wire.begin();
Wire.setClock(10000);

display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.cp437(true);

wdt_enable(WDTO_4S);
}

void loop() {
pollButtons();
loopCounter++;
delay(10);

processMode();
processSelect();
processUp();
processDown();

if(40 != loopCounter) return;
loopCounter = 0;
wdt_reset();

display.clearDisplay();
if(0 == mode) processMainScreen();
if(1 == mode) processSetupScreen();
display.display();
}

void processMode() {
if(!modePressed) return;

modePressed = false;
if(0 == mode) {
mode = 1;
return;
}
if(1 == mode) {
mode = 0;
if(low != EEPROM.read(0)) EEPROM.write(0, low);
if(high != EEPROM.read(1)) EEPROM.write(1, high);
return;
}
}

void pollButtons() {
//----Mode button-----------------------------------
if(LOW == digitalRead(MODE)) modeCount++;
else modeCount = POLL_BASE;

if((POLL_BASE + POLL_COUNT) <= modeCount)
{
modePressed = true;
modeCount = 0;
}

//----Up button-------------------------------------
if(LOW == digitalRead(UP)) upCount++;
else upCount = POLL_BASE;

if((POLL_BASE + POLL_COUNT) <= upCount)
{
upPressed = true;
upCount = 0;
}

//----Down button-----------------------------------
if(LOW == digitalRead(DOWN)) downCount++;
else downCount = POLL_BASE;

if((POLL_BASE + POLL_COUNT) <= downCount)
{
downPressed = true;
downCount = 0;
}

//----Select button---------------------------------
if(LOW == digitalRead(SELECT)) selectCount++;
else selectCount = POLL_BASE;

if((POLL_BASE + POLL_COUNT) <= selectCount)
{
selectPressed = true;
selectCount = 0;
}
}

void processUp() {
if(!upPressed) return;
upPressed = false;
if(0 == mode) return;

if(0 == selectRow) {
high++;
if(101 <= high) high = 0;
}
else {
low++;
if(101 <= low) low = 0;
}
}

void processDown() {
if(!downPressed) return;
downPressed = false;
if(0 == mode) return;

if(0 == selectRow) {
high--;
if(255 == high) high = 100;

}
else {
low--;
if(255 == low) low = 100;
}
}

void processSelect() {
if(!selectPressed) return;

selectPressed = false;
if(0 == mode) selectRow = 0;
if(1 == mode) {
if(0 == selectRow) {
selectRow = 1;
return;
}
if(1 == selectRow) {
selectRow = 0;
return;
}
}
}

void processMainScreen() {
getRH();

if(low > result) relayOutput = 1;
if(high < result) relayOutput = 0;
digitalWrite(RELAY, relayOutput);

getTemperature();
}

void processSetupScreen() {
display.setCursor(100, selectRow * 16);
display.print((char)27);

display.setCursor(0, 0);
display.print(F("H: "));
display.print(high);

display.setCursor(0, 16);
display.print(F("L: "));
display.print(low);
}

void getRH() {
//Triggering RH measurement
Wire.beginTransmission(0x40);
Wire.write(0xE5);
Wire.endTransmission();

//Requesting result (3 bytes: 2 bytes for value and 1 for checksum)
Wire.requestFrom(0x40, 3);
index = 2;
while(Wire.available()) {
bufferRaw[index] = Wire.read();
if(0 == index) {
//Trying to display result if it's correct
showRH();
break;
}
index--;
}
}

void getTemperature() {
//Triggering temperature measurement
Wire.beginTransmission(0x40);
Wire.write(0xE3);
Wire.endTransmission();

//Requesting result (3 bytes: 2 bytes for value and 1 for checksum)
Wire.requestFrom(0x40, 3);
index = 2;
while(Wire.available()) {
bufferRaw[index] = Wire.read();
if(0 == index) {
//Trying to display result if it's correct
showTemperature();
break;
}
index--;
}
}

void showRH() {
display.setCursor(10, 0);
if(checkChecksum(bufferRaw[2], bufferRaw[1], bufferRaw[0])) {
rawResult = (bufferRaw[2] << 8) | (bufferRaw[1] & B11111100);
result = rawResult * 125.0 / 65536.0 - 6.0;
display.print(F("RH:"));
display.print(result, 1);
display.print(F("%"));
}
else
display.print(F("RH: error"));
}

void showTemperature() {
display.setCursor(10, 16);
if(checkChecksum(bufferRaw[2], bufferRaw[1], bufferRaw[0])) {
rawResult = (bufferRaw[2] << 8) | (bufferRaw[1] & B11111100);
result = rawResult * 175.72 / 65536.0 - 46.85;

#ifdef Fahrenheit
result = result * 1.8 + 32.0;
#endif

display.print(F(" T:"));
display.print(result, 1);

#ifdef Fahrenheit
display.print(F("F"));
#else
display.print(F("C"));
#endif
}
else
display.print(F("Temp: error"));
}

bool checkChecksum(byte MSB, byte LSB, byte checksum) {
CRC = 0;
CRC = CRC_8_TABLE[CRC ^ MSB];
CRC = CRC_8_TABLE[CRC ^ LSB];
if(CRC == checksum) return true;
return false;
}



Tell if anything changed.

Extras: Filter Print Post Top
Re: !!Arduino programer needed!! [Re: bogdancev]
    #26294273 -

Nothing changed I don't know where to go from here. It don't make sense if it is working for you it should be working for me. Any ideas would be greatly appreciated!!

Extras: Filter Print Post Top
Re: !!Arduino programer needed!! [Re: SHROOMSISAY01]
    #26294284 -

Well, schematic is so simple that we just cannot be lost here.
Let see the other side of your shield.
Please make the best photo you can. Maybe make both sides.

Extras: Filter Print Post Top
Re: !!Arduino programer needed!! [Re: bogdancev]
    #26294368 -

I hope you can follow this...


Extras: Filter Print Post Top
Re: !!Arduino programer needed!! [Re: SHROOMSISAY01]
    #26294380 -

In the middle pic, it looks like the ground for the black wire is not connected but it is. I just checked. I have gone over this thing many times with a multimeter and everything is connected the way it should be as far as I can tell.

Extras: Filter Print Post Top
Re: !!Arduino programer needed!! [Re: SHROOMSISAY01]
    #26294389 -

Is there a connection?


Also could you use your multi-meter and check if top (signal) part of button 1 and 3 is not connected together.
What I mean here is the fact the button 1 and 3 behave similarly, so they must be interconnected, please check it with multi-meter.

Extras: Filter Print Post Top
Re: !!Arduino programer needed!! [Re: bogdancev]
    #26294402 -

yes, there is a connection I thought the same thing as I stated above. I don't know where you are talking about as far as button 1 and 3. But I have used a multimeter and none are connected. If you show me I will double-check it though.

Extras: Filter Print Post Top
Jump to top Pages: | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |

Shop: Unfolding Nature Unfolding Nature: Being in the Implicate Order   Myyco.com Golden Teacher Liquid Culture For Sale


Similar ThreadsPosterViewsRepliesLast post
* I need some type of medicinal mushroom... Ichydai 4,672 12 10/15/02 07:14 AM
by Anonymous
* Help! Pure agar cultures needed. Some trades available! Basidiocarp 4,459 17 01/26/04 07:53 AM
by ChromeCrow
* We need one or two mods for this forum. ThorA 1,736 12 09/26/02 11:51 AM
by psyconaut
* In need of pink oyster spores colors 3,304 7 09/07/02 07:28 PM
by colors
* i need a pic of a yellow morel plate please ChromeCrow 2,314 10 11/22/03 11:11 AM
by FocusHawaii
* Gourmet/Edible Cultures Needed. Joshua 2,130 6 02/10/04 02:42 AM
by Zen Peddler
* Just Recieved Cultures - need ID Joshua 1,515 15 03/10/04 12:50 PM
by Joshua
* Advice Needed For Sending Cultures Jackal 2,122 14 03/26/03 06:10 PM
by FocusHawaii

Extra information
You cannot start new topics / You cannot reply to topics
HTML is disabled / BBCode is enabled
Moderator: RogerRabbit, cronicr, Pastywhyte, Forrester, Stromrider, SHROOMSISAY01
7,609 topic views. 0 members, 105 guests and 8 web crawlers are browsing this forum.
[ Show Images Only | Sort by Score | Print Topic ]
Search this thread:

Copyright 1997-2026 Mind Media. Some rights reserved.

Generated in 0.034 seconds spending 0.01 seconds on 18 queries.