3

Is the Arduino Uno capable of surviving the extended service expectancy and execute the program correctly? Yes, it is. Though your program and wiring needs to be stable and correct. What is the influence of small voltage fluctuations on the endurance of electronics on the board? Depends on what you call small. As long as you don't enter the brown-out ...


3

I nearly have the same problem. I use five of the MAX31865-Boards with 2-Wire Termocouples on an Arduino Nano. Two of the five boards are working perfectly. The other 3 boards show exactly the same wrong behaviour you described. My temperature readings are exactly like yours (-242.02). But I think I found the reason for the not working ones: The two working ...


3

LEDs are not really efficient for heating up, you can better use a normal light bulb for that (they are less efficient, thus giving more heat). The Arduino can only control some 100's of mA, that's not much for heating purposes. Did you think about using a real heater (maybe small size), and use a relay to turn it on by your Arduino, and using a ...


2

It could be measuring the heat of nearby components, or it could be a wiring issue. Breadboards are convenient but it also allows people to use poor wiring practices. Long wires, poor ground return paths, insufficient bypass capacitors. The first thing to do is to arrange the layout so that there is little chance of the other components heating the sensor. ...


2

The datasheet is as inaccurate as the sensor itself and it is even worse than you think! In that datasheet is also written: "usually require an external about 5.1kΩ pull-up resistor". In the datasheet is also mentioned that the output signal can go up to 8 mA for a high output and minimal 10 µA low output. The 10 µA means that the pullup resistor should be ...


2

I have a couple of suggestions: The combined code is very different from the simple LM35 code that works. I'd suggest you start with the combined code but comment out everything that doesn't directly apply to reading the LM35, and get that working correctly. The interrupt service routine (ISR) is trying to do too much, and leaves the interrupts off during ...


2

Every electronics component has a document that describes it. It is called a "datasheet". This is the page for the LMT70: ti.com LMT70 The red text is for the datasheet as pdf document, or else you can use the tab "Online datasheet", and the datasheet can also be found under the tab "Technical documents". According to the datasheet it works with 5V, you ...


2

There are several things that are not doing correctly. This is not a complete answer but to provide you some directions on how to get it right. A0 is pin 54, it is not SS which is pin 53; On how to use the SPI library properly, I would suggest that you read my blog on SPI, it will also help you to get the data out of data sheet that you need for SPI ...


2

There are likley two problems: An invalid device address is used. The device address is 0x10 and the Arduino Wire library expects it that way (and not in the shifted version with read/write bit). Your code uses two separate transactions, however the datasheet specifies a single transaction with a repeated START condition for separating the write and read ...


1

You need to give a brief LOW pulse, not a long HIGH pulse: In setup: pinMode(reset_pin, OUTPUT); digitalWrite(reset_pin, HIGH); When you want to reset: digitalWrite(pin_reset, LOW); delay(1); digitalWrite(pin_reset, HIGH);


1

Your problem lies here: int val = SPI.transfer(0x00); // read from sensor Serial.println(val); //display reading on serial monitor int temperature = val * 0.25; And it's a twofold problem. First: int val = SPI.transfer(0x00); That only reads the first 8 bits of the data. To get all 16 bits you have to do two transfers and then combine them ...


1

You can use nickle chrome wire to easily heat that small box. From Wikipedia: Almost any conductive wire can be used for heating, but most metals conduct electricity with great efficiency, requiring them to be formed into very thin and delicate wires in order to create enough resistance to generate heat. When heated in air, most metals then oxidize ...


1

The total current of your power supply, 5V • 3A is only 15 watts. That's not enough power to create a meaningful amount of heat. (although looking at your video your grow box is really tiny...) LEDs are a terrible choice for providing heat. They produce mostly light, and very little heat (which is good if you want light, but bad if your goal is to build a ...


1

I am interested on this as I have the same issue. What about using a FET or MOSFET to amplify the current that the LM293D provides?


1

firstly, move your pinMode() settings to setup section. in your code, when the temperature is 21 active pin will be 6 and 8. you should rewrite your code in next ways: 1: if (t < 22) { ... its cold temp ... } else if (t > 26) { ... its hot temp ... } else { ... it's nor temp ... } 2: if (t < 22) { ... its cold temp ... } if (t > 26) ...


1

The rules of integer arithmetics are tricky in C++. There are rules that give the type of integer literals: 256 and 200 are of type int, which is the default type for integer literals. On the Nano, this type is 16-bits, and covers the range from −32,768 to +32,767. 65536 being too large for the int type, it is implicitly considered a long int. This type is ...


1

You said "I defined TA as a float." That doesn't matter. In C/C++, expressions are only "promoted" to a larger/different data type AFTER they are evaluated. Your calculations are being done using 16-bit ints, which overflow, and then cast to a float. (C/C++ evaluates expressions from the inner-most outward, and if one of the operands to an operator is a ...


1

Also.. i would see a problem there. Lets say so.. Sensor data. Gnd. Vcc uC 2560 uC Esp If sensor data is linked to both uC And use a line dht_available btween 2560 and esp to handle the uC reading.. then.. If dht_available == HIGH then 2560 read after switch dht line to Low If dht_available == LOW then esp read after reading dhtline》 HIGH But the sensor ...


1

We've been using the WDT delta as a temperature sensing method: https://thecavepearlproject.org/2019/02/25/no-parts-temperature-measurement-with-arduino-pro-mini-to-0-005c-or-better/ Point being that once you have those calibration constants, you could use them use them to correct for WDT variation. OR you might be able to get away with a much shorter ...


1

Your description is pretty detailed but you've missed to tell, which device you are talking about. I assume you are talking about the ATmega 328P in an Arduino Uno. AFAIK you can only calibrate the so called Calibrated internal RC oscillator, which is used for the main operations. You cannot calibrate the Internal 128kHz RC oscillator from the watchdog. I ...


1

Hi Lefteris the builder, StackExchange is about questions and answers. Arduino is about learning and fast prototyping. For guidance with your project, the forum at http://forum.arduino.cc/ is more appropriate. I suppose that a number of us have read the code that you use. We really do read code. That code is not bad, but there are a few weak spots in that ...


1

A good way to avoid display flicker is to only update the display when needed. The display update is what causes it to flicker. If you change your main loop as below, the display will only update when needed (when the current reading is different than the last reading). It's probably also a good idea to only read the temperature every 2 seconds or so ...


1

The first notice about multiple libraries is not stopping you. The DHU library relies on the Adafruit Unified Sensor Library You should have the following libraries (installed and) included: #include <Adafruit_Sensor.h> #include <DHT.h> #include <DHT_U.h>


1

It's a bit hard to see, but DHT11; does not look like a correct statement, assuming DHT11 is a class (not a define like shown) it should be something like DHT11 dht; where dht is an instance and you can use that. Than in DHT11.read(DHT11pin); you should replace it by dht.read(DHT11pin);


1

The cause is the low sinking capabilities of LM35 output. This makes the output sensitive to EMI. Yes, the output output impedance is stated as 0.5 ohms but only for sourcing current. The sinking current is limited to 1uA which is easily achieved by the environment noise. You need to add a low impedance load between LM35 output and ground, can be 200 ohm ...


1

In the bluetooth loop you use: delay(20000); while (0); This means you first wait 20 seconds, and while(0) does not do anything (unuseful instruction). Actually, this results when the button is pressed, it starts the loop again, but you have to merge both codes into one. I would add the sending of the serial command in the code above, remove the while ...


1

The essence of your question is actually about managing processor to processor communications. As the temperature sensors you have chosen appear as peripheral processors which communicate to your processor over SMBus (MCP9808) or 1-Wire bus (DS18B20). Both temperature sensors actually abstract you from the details of (likely) thermistor Analog to Digital ...


1

I've read that it could be advantageous to set a small delay between temperature readings Although temperature is typically a measure that changes slowly in time, there is nothing in programming/device side preventing you from making readings in short intervals; unless this added time is necessary to prevent issues on other tasks, but so it should be not ...


Only top voted, non community-wiki answers of a minimum length are eligible