LM75BD温度传感器数据手册及源码解析

版权申诉
0 下载量 97 浏览量 更新于2024-10-06 收藏 128KB ZIP 举报
资源摘要信息: "LM75BD温度传感器数据手册及源代码压缩包" LM75BD是一款由德州仪器(Texas Instruments)制造的数字温度传感器,专为符合I2C串行总线协议设计。它能够精确测量温度,并通过I2C接口向微处理器提供这个测量值。该传感器具备数字输出,使得与微控制器的接口设计更加简便,无需复杂处理模拟信号。 LM75BD传感器的工作温度范围为-55°C至+125°C,在整个范围内,它能够提供±2°C的温度准确度。此传感器还具有过热报警功能,可以设定一个阈值,当温度超过此阈值时,通过I2C总线向主机发出警告。这使得LM75BD非常适合用在系统监测和保护等应用场合。 该传感器的工作电压范围为2.7V至5.5V,兼容多种微控制器和微处理器的电压需求。在I2C总线上,LM75BD设备地址的前三位是固定的,为1001,剩下的三位是可设置的,从而允许在一个系统中连接多个LM75BD设备,并通过软件来选择和访问它们。该特性大大扩展了该传感器的应用范围,可以在一台主机上监测多个区域的温度。 LM75BD传感器还包含一个可编程的迟滞功能,用户可以设定一个温度范围,在这个范围内的温度变化不会触发过热报警,从而避免了因温度微小变化而引起的频繁报警。 LM75BD的封装形式多样,常见的有SOIC-8、MSOP-8和TO-92,这为设计工程师提供了灵活的安装选择。 此压缩包文件"lm75bd_LM75BDdatasheet_源码.zip"很可能包含了该LM75BD传感器的详细数据手册(datasheet)和一些相关的源代码。数据手册会为用户提供该芯片的电气特性、引脚配置、工作原理以及使用说明等详细信息。源代码部分可能包含了用于演示或实现与LM75BD通信的程序代码,这些代码可能涉及如何初始化传感器,读取温度值以及设置阈值和报警等功能。通过这些代码,工程师可以更快地将LM75BD集成到自己的系统中,并开始使用这一功能强大的温度监测工具。 在使用LM75BD时,工程师需要仔细阅读数据手册,以了解其电气特性和配置方法。此外,进行软件编程时,需要遵循I2C总线协议的规范,确保正确读写数据。在硬件连接时,工程师需要确保正确连接电源、地线以及数据和时钟线,并通过软件设置好设备地址,以便正确访问各个LM75BD传感器。 LM75BD的这些功能和特性,使得它成为许多温度监控应用的首选传感器。无论是家用电器、工业控制系统还是计算机系统,LM75BD都能提供高精度、可靠的温度监测解决方案。通过使用这个压缩包中的数据手册和源代码,可以大大降低开发成本和时间,加速产品上市。

if self.config.load_type == "INC": # adhoc hist job do not need to join landing merge table try: landing_merge_df = self.spark.read.format(self.config.destination_file_type). \ load(self.config.destination_data_path) # dataframe for updated records df = df.drop("audit_batch_id", "audit_job_id", "audit_src_sys_name", "audit_created_usr", "audit_updated_usr", "audit_created_tmstmp", "audit_updated_tmstmp") # dataframe for newly inserted records new_insert_df = df.join(landing_merge_df, primary_keys_list, "left_anti") self.logger.info(f"new_insert_df count: {new_insert_df.count()}") new_insert_df = DataSink_with_audit(self.spark).add_audit_columns(new_insert_df, param_dict) update_df = df.alias('l').join(landing_merge_df.alias('lm'), on=primary_keys_list, how="inner") update_df = update_df.select("l.*", "lm.audit_batch_id", "lm.audit_job_id", "lm.audit_src_sys_name", "lm.audit_created_usr", "lm.audit_updated_usr", "lm.audit_created_tmstmp", "lm.audit_updated_tmstmp") self.logger.info(f"update_df count : {update_df.count()}") update_df = DataSink_with_audit(self.spark).update_audit_columns(update_df, param_dict) # dataframe for unchanged records unchanged_df = landing_merge_df.join(df, on=primary_keys_list, how="left_anti") self.logger.info(f"unchanged_records_df count : {unchanged_df.count()}") final_df = new_insert_df.union(update_df).union(unchanged_df) print("final_df count : ", final_df.count()) except AnalysisException as e: if e.desc.startswith('Path does not exist'): self.logger.info('landing merge table not exists. will skip join landing merge') final_df = DataSink_with_audit(self.spark).add_audit_columns(df, param_dict) else: self.logger.error(f'unknown error: {e.desc}') raise e else: final_df = DataSink_with_audit(self.spark).add_audit_columns(df, param_dict) return final_df

2023-06-11 上传