Deutsch English Français Italiano |
<vs94a0$t7kp$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder9.news.weretis.net!news.quux.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: John R Walliker <jrwalliker@gmail.com> Newsgroups: comp.sys.raspberry-pi Subject: Re: Anyone gotta clue? TMP36 Pi PICO. Date: Sat, 29 Mar 2025 15:40:48 +0000 Organization: A noiseless patient Spider Lines: 121 Message-ID: <vs94a0$t7kp$1@dont-email.me> References: <vs8sts$1f267$1@dont-email.me> <vs91dg$1j45e$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Sat, 29 Mar 2025 16:40:49 +0100 (CET) Injection-Info: dont-email.me; posting-host="4c279c80eee46daf1683f9305e25b9c7"; logging-data="958105"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+NLgUMGdA4pmqf8XOzDolZnPYRosYTcKk=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:RCNov7DhvHNQdXclyv5OR45T8k8= Content-Language: en-US In-Reply-To: <vs91dg$1j45e$1@dont-email.me> Bytes: 5004 On 29/03/2025 14:51, The Natural Philosopher wrote: > On 29/03/2025 13:34, The Natural Philosopher wrote: >> >> I have a PI PICO W which I am developing code for amongst which is a >> TMP36 temperature sensor >> The code I have reused form other thermostat projects but its suddenly >> giving the odd false reading. >> >> #define CHIP_TEMP_IO 28 >> #define CHIP_ADC 2 >> #define RELAY_IO 21 >> #define IN 0 >> #define OUT 1 >> #define ON 1 >> #define OFF 0 >> >> void initialise_hardware() >> { >> adc_init(); >> adc_gpio_init(CHIP_TEMP_IO); >> gpio_init(RELAY_IO); >> gpio_set_dir(RELAY_IO,OUT); >> } >> void set_relay(int flag) >> { >> cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, flag); // set the lamp >> gpio_put(RELAY_IO,flag); //set the relay >> } >> float read_temperature() >> { >> static int index; >> static int flag; //initialised to zero at startup >> static uint32_t rawbuf[32]; >> const float conversion_factor = 3.3f / (1<<12); >> float result; >> float last; >> int i; >> uint32_t raw; >> adc_select_input(CHIP_ADC); >> raw = adc_read(); >> //wtf? >> printf ("Raw=%0X\n",raw); >> >> result=((float)raw)*conversion_factor; >> >> return (100*result-54); // the pcb warms them up by about 4 >> degrees >> } >> >> I am reading the temperature every two seconds as in >> while (1) >> { >> sleep_ms(2000); >> flag=(flag? OFF:ON); >> set_relay(flag); >> temperature = read_temperature(); >> printf("Temperature is %.1f C\n",temperature); >> } >> >> about one time in ten the output jumps to about 20°C less than >> expected e.g. >> >> >> Raw=3BE >> Temperature is 23.2 C >> Raw=3BE >> Temperature is 23.2 C >> Raw=3BE >> Temperature is 23.2 C >> Raw=29B >> Temperature is -0.3 C /************************ >> Raw=3C0 >> Temperature is 23.3 C >> Raw=3C0 >> Temperature is 23.3 C >> Raw=3BF >> Temperature is 23.3 C >> Raw=3BF >> Temperature is 23.3 C >> Raw=3BF >> Temperature is 23.3 C >> Raw=3C1 >> >> >> I have added decoupling to the TMP36 supply which is fed from the ADC >> 3.3v supply which seems to be a steady 3.29V according to my DVM. >> >> Do I have a bad PICO W? TMP 36 or what? >> >> Other PICOs with the same chip don't do this... >> The only difference is that this PICO is running different and a lot >> more wifi/server code >> Is it possible that some interrupt is - er - interrupting the ADC read >> with dire results? >> >> >> >> I cannot but think this is a hardware issue. > I found another TMP36 from an old project and switched it in. > No joy. > Looks like its PI related > > “it should be clear by now to everyone that activist environmentalism > (or environmental activism) is becoming a general ideology about humans, > about their freedom, about the relationship between the individual and > the state, and about the manipulation of people under the guise of a > 'noble' idea. It is not an honest pursuit of 'sustainable development,' > a matter of elementary environmental protection, or a search for > rational mechanisms designed to achieve a healthy environment. Yet > things do occur that make you shake your head and remind yourself that > you live neither in Joseph Stalin’s Communist era, nor in the Orwellian > utopia of 1984.” > > Vaclav Klaus > I'm sure you have good reasons for using that device, but maybe consider the TMP1075. It is cheap and reasonably accurate. I2C should not be a problem on the Pico. John